Главная причина - не какое-то удобство, не желание соблюдать правила "веб-этикета", а просто кэширование!
Воссоздадим ситуацию: Есть PHP-файл, страница сайта, которую кэшировать нельзя, так как содержимое меняется в зависимости от не оговоренного фактора. Но, помимо этого содержимого, на странице есть гора всего - стили, js код и т.д. Они, конечно, тоже могут однажды быть отредактированы, но все же, их можно обозвать статическим содержимым.
Так вот, почему бы не вынести их в отдельные файлы и не указать браузеру на их кэширование - подумали умные люди. Это же сэкономит мегабайты трафика посетителей. Ну и примерно с этого момента у выноса стилей и скриптов в отдельные файлы появился реальный смысл.