Накаут поможет вам организовать UI. Синхронизацию данных с REST можно на backbone например повесить. Реализация сервера в любом случае от того что вы будете на клиенте юзать не зависит.
Я думаю вам стоит сделать одну очень полезную вещь - почитать документацию.
В целом же это называется "наследование шаблонов". В Yii кастыль с лэйаутами. То есть в отличии от Yii у вас может быть бесконечно большая вложенность и вы можете на каждом уровне переопределять блоки. Это позволяет уменьшить дублирование в шаблонах по максимуму. Шаблоны же компилятся так что проблем с производительностью так же нет.
Вообще ничего не делаем на сервере по поводу мобильных устройств. Все разруливается с клиента (фича детекшен, никакой привязки к юзер агенту браузера) и адаптивный дизайн по возможности.
Но если вам очень хочется - есть https://github.com/browscap/browscap-php который использует сторонний сервис и по этому более мение актуальные данные возвращает. Но придется оборачивать в кеши.
CMS это конечный продукт. В основе CMS должно быть ядро, или фреймворк. Можно взять готовый, можно писать очередной велосипед.
Я рекомендую вам взять Silex и Doctrine DBAL (не ORM) + PHP-DI и баловаться.
Писать же продукты типа Drupal/Joomla/Wordpress вам пока не суждено, у вас для этого слишком мало опыта а стало быть в процессе разработки и проектирования вы не сможете предугадать даже половины всех юзкейсов. А стало быть на выходе получится очередной шматок гуано.
Сокеты, постоянные соединения.... можно просто за основу чатики сделать. Есть сервисы push-уведомлений типа pusher.com и т.д. Ну а дальше слишком много вариантов.
Нет такого понятия. Есть субъективное мнение большинства что Rust реализовали систему типов очень красиво и элегантно. Так же существует распространенное мнение что Go - плохо спроектированный язык и вообще он уродлив, приводя довольно неплохие доводы, но иногда странные. Кто-то жалуется что в go нет дженериков, кто-то сетует на синтаксис.... словом... субъективизмы.
Если вы разберетесь с Java - разобраться с Php проблем не составит. А еще есть c#, который похож на Java только лучше. Да и с учетом того что есть mono с кросплатформенностью проблем не будет.
Что по поводу мелких сайтов на Java - почти не встречаются, слишком это... дорого. В основном это какие-то web-сервисы для каких-то мобильных приложений или внутренние системы.
Если захотите попрактиковаться - перепишите Jenkins.