Михаил Плюснин: не более опасно, чем обычная авторизация через формы. Токен - это почти то же самое, что идентификатор сессии. Правда, в нем зашифрован id юзера и все custom claims, но пароля быть не должно. Разумеется, для приложений уровня онлайн-банка вам понадобятся дополнительные способы защиты от угона сессии, но для обычного сервиса хватит.
Вообще говоря, да, в JS так исторически сложилось, но объективно говоря - это минус. В TypeScript он успешно устранен - там объект со свойствами можно описать интерфейсом, тогда будет и автокомплит, и проверки корректности свойств, и наличия всего необходимого.
Пожалуйста, прочитайте вопрос еще раз. Меня интересует минимальное(1) подмножество синтаксических(2) конструкций, позволяющее реализовать любые(3) остальные, так же как в BF за счет 8 операций можно выразить любое вычисление. С++ не удовлетворяет 1 и 3, asm - 2.
Prolog / haskell - интересные варианты.