Ответ 1
SQLite требует индекса для принудительного ограничения PRIMARY KEY - без индекса, принудительное ограничение ограничений будет сильно замедляться по мере роста размера таблицы. Ограничения и индексы не идентичны, но я не знаю какой-либо реляционной базы данных, которая автоматически не создает индекс для принудительного использования первичных ключей. Так что да, это нормальное поведение для любой реляционной базы данных.
Если целью создания индекса является оптимизация поисков, в которых у вас есть индексный термин поиска, который включает первый столбец в индексе, тогда нет причин создавать дополнительный индекс для столбца (ов) - SQLite будет использовать автоматически созданный.
Если ваш поиск будет включать второй столбец в индексе без включения индекса для первого столбца, вам нужно будет создать свой индекс. Ни SQLite (ни какая-либо другая реляционная база данных, о которой я знаю) не могут использовать составные индексы для оптимизации фильтрации, когда главные столбцы индекса не указаны в поиске.