У разработчика js и html могут быть в разных файлах (или что там у него в IDE вместо), а вот на выходе из веб-сервера это все может приехать в едином http-ответе, без урлов унутре, в единой слепленой html'ине.
PS. И да, если нужен простейший скриптинг в простейшей странички, то довольно глупо это все раскидывать по десятку сущностей.
Если у разработчика всё в один файл замешено, то он сам себе злобный буратин.
Раскидывают скрипты по десятку сущностей (модулей) для удобства их загрузки/чтения/сопровождения. Нормальный сайт загружает небольшой HTML, а затем подгружает CSS в зависимости от устройства вывода (экран/принтер/...), и скрипты, причём умеет это делать асинхронно и по мере надобности. Т.е. если пользователь не задействует какой-то функционал, то соответствующие скрипты и не загрузятся.
Это не нормальный сайт, это тормозной сайт. Ты профилировщик скажем в хроме запускал когда-нибудь?
Представим себе что у тебя есть гигабитный канал до интернета. Представим что имеем сайт из 10ти компонент. Теперь представим что ты живешь в Лондоне и спокойно идешь на этот сайт который хостится с Калифорнии. Пинг от тебя до калифорнии 150 ms. Таким образом загрузка этого сайта по гигабитному каналу у тебя займет минимум полторы секунды. А если ты сидишь через прокси (корпоративная политика) - то и десяток секунд занять может. И это при том, что если бы все слепили в один html, у тебя загрузилось бы за 150 ms. Разница как бы в 10 раз.
Поэтому сейчас рекомендуется все картинки сайта слеплять в одну и загружать за один запрос, и затем уже css'ом кадрировать. Поэтому же js лучше вкомпиливать в html. И поэтому же twitter сейчас отошел от чистого ajax'а (который по требованию что-то там подтягивает) и перешел на гибридную модель - в момент захода в твиттер первая страница полностью генерируется на сервере и приезжает одним большим куском, а затем уже её обновления подтягиваются ajax'ом.
Понятно что в крайности впадать не надо, то есть грузить сразу все 20 мегабайт всех возможных скриптов и еще 100 мегабайт всех возможных картинок которые, могут пригодиться за сессию, не следует. Но если у тебя 100 Кб html и еще 10 Кб js, то нет смысла js держать по отдельному урлу. С css то же самое.