Чтобы ответить на ваш первый вопрос:
Вы должны принять во внимание определенные факторы производительности. Система с низкой задержкой и высокой пропускной способностью соединения с быстрой и не перегруженной базой данных (возможно, даже локальной базой данных) может позволить более агрессивно опрашивать сервер и предоставлять конечному пользователю совершенно другие возможности автоматического заполнения.
Для интернет-приложений общее эмпирическое правило заключается в том, что пользователь должен ввести три символа, прежде чем активируется автозаполнение на сервере. В некоторых случаях это полностью меняется.
Полагаю, это относится и к вашему третьему вопросу.