Да и по производительности он уступает:
Есть ещё такой тест который показывает обратное:
plnkr.co/edit/leZaT043Yffz4LfG8Ykq?p=preview
Я перешел от Knockout.js к Angular.js (а потом и к Angular Light), вот некоторые минусы первого:
1) В ng есть декларативный биндинг, в ko нет (раньше не было), хотя недавно натыкался на какие-то решения.
2) Из-за того что в angular dirty check - не нужно заворачивать данные в observable, это очень удобно.
3) В ng можно без проблем оперировать с данными (большие вычисления), в ko для этого нужно достать данные из observable, провести операции, потом положить обратно.
4) Так же в ko происходит "мгновенное" обновление, что несет 2 неприятности: 1) нагрузка, возможно не нужно обновлять именно сейчас 2) иногда нужно учитывать порядок обновления данных, т.к. зависимые расчеты могут сломаться.
5) Есть ещё не маленькая неприятность, когда в большом проекте нужно сделать доработку - и нужно сделать обычную переменную как observable - заставляет рефакторить, или наоборот перевести из observable в обычную для оптимизации, этой проблемы в angular нет.
Можете так же посмотреть
Angular Light, он попроще, + есть некоторые полезные фичи которых нет в Angular.js