Потому что даже если в цикле написать var ip, и выполнить цикл 100 раз, объявление переменной "всплывет" в начало функции, никакой ошибки это не вызовет и код будет работать, как ожидалось. Никаких ограничений в этом плане не накладывается, но это считается плохой практикой, именно поэтому "не рекомендуется", а не "нельзя".
Не нельзя, а не рекомендуется. Ваш вариант ничуть не лучше, имхо. Переменные стоит объявлять отдельно в самом начале функции, здесь вы их уж очень сильно закамуфлировали.
У людей нет выбора при использовании расширений - люди используют расширение исходя из содержимого. Вы можете вообще любое расширение назначить, хотите, используйте расширение *.we-de. Этот вопрос выеденного яйца не стоит, мы уже слишком много времени на его обсуждение потратили.
В файлах хранится код генерации страниц, они к URL отношения не имеют.
Вот какие-то уроки на эту тему: www.itlessons.info/php/routing-library, habrahabr.ru/post/31270
Ну а вообще в любом современном фреймворке одна точка входа и виртуальный роутинг.
Опишите задачу полностью, не ясно, что в итоге должно получиться.
В любом случае, код из примера легко доработать и вместо записи в объект конкатенировать строку.
Никто не мешает сконкатенировать весь js в один файл, чтобы не грузить библиотеки отдельными соединениями. Ну а ссылку на реализацию ajax-запроса без jQ я выше дал.