Это сэкономит процессорное время сервера за счет процессорного времени клиента, поэтому идеально возвращать HTML, но если ваш сервер перегружен и нет возможности "апгрейда", то возвращайте JSON.
Не надо ничего делать бесплатно, портфолио - это только реальные задачи с реальными требованиями к ним, а не надуманные, зарегистрируйтесь на фрилансе и работайте пусть дешево, но не бесплатно.
RIA - это абсолютно любое клиент-серверное приложение, необязательно HTTP и в браузере, а SPA - это в браузере, имеющее несколько страниц навигации, но работающее без перезагрузки страницы (на AJAX), на уровне HTTP у всех страниц URL (index файл) один.
Для REST API лучше Node.js, PHP, Python, Ruby, для сайтов с высокими нагрузками Go, сервис понятие абстрактное, для Enterprise (интранет) лучше ASP.NET или Java, для клиентских частей мобильных приложений ни один из перечисленных инструментов не подходит, для умных домов тоже.
Если для Flash тоже нет разрешения в crossdomain.xml и нет подходящего API, а также не подходят решения с "эксплойтами", то никак не обойти, только проксированием (отправляйте запрос к своему серверу, а с сервера к странице).
Редактировать в любом случае возможно, редактируется даже машинный код, скомпилированный для редких архитектур, для меня возможность редактирования программ, которыми я пользуюсь, так же как и открытый исходный код, это плюс, а не минус, можно что-то доработать для своих нужд, а если у вас применен какой-то секретный алгоритм, то его обфусцируйте, вынесите на сервер, примените шифрование и т.п., а остальное оставьте.
Головой нужно думать, и понимать, юнит-тест не "запускает весь процесс" по определению, если весь процесс, то это функциональный тест, в некоторых случаях достаточно функционального тестирования.
1. Осваивать бек-енд.
2. Нанять специалиста.
3. Выбрать платформу, где бек-енд не требуется, например, приложения Chrome и аналогичные для Firefox, но это уже не совсем Web-приложения, подходят лишь для очень ограниченного круга задумок.
Сделайте сами подобный фреймворк, то есть разработайте нативное приложение, встройте "движок" браузера, выполняйте в нем ваши HTML & CSS & JS, сделайте bridge (API).
Это можно сделать с помощью if/else (7 возможных вариантов: первый чекбокс, второй чекбокс, первый + второй и тд), а какие существуют более удобные способы?
Достаточно 1 или 3 условий, значения всех выбранных checkbox'ов добавить в массив, а массив объединить (join) в строку.
Если у вас Винда OS X El Capitan, то спрашивайте на форумах вашей планеты!
А на наших земных операционных системах "ассеты" на сервере ищут поиском по файлам, для ускорения имеет смысл посмотреть .htaccess и маршрутизаторы, или для начала найти index.php и относительно него попробовать выстроить пути, как в HTML-коде, ну и Гугл + документация по "движку", конечно.