Мне концептульно не нравится одномерная шкала нет гарантий - дофига гарантий. Хорошо бы по смотреть что именно гарантируется, зачем это нужно разработчику и чего оно стоит.
Я, в общем-то, конечно, согласен, но по личным впечатлениям градация получается в духе от "нормально -- просто пишешь и оно работает (Haskell)" к "что??? чистота и эффекты не разделяются, у кого есть время всё оборачивать в перехват исключений и проверки на null?! (Scala)" к "блин, что значит ЕЩЁ меньше гарантий?!! (Java)" к "ёбаное UB на каждом шагу!!!"