Почему некоторые современные CMS не связывают свои таблицы в БД?
Потому что они связывают на прикладном уровне движка.
Давным давно уже не модно использовать все мыслимые возможности конкретной СУБД.
Хотя бы по той причине, что сие заставляет слишком уж привязываться к конкретной СУБД.
То, что вам проще писать запрос, чем разбираться в движке говорит только о том, что ваша квалификация относительно этого конкретного движка - довольно не высока.
В этом нет ничего страшного - всегда найдется кто-то более компетентный в этом конкретном движке. Нельзя быть компетентным во всех движках. 
Действительно, внутри SQL писать проще. Просто потому, что там решаются гораздо менее глобальные вопросы. Можно сказать, SQL - только примитивных проблем. 
Потому вам и проще. Решать примитивные вопросы всегда проще. 
По сути вы не проблемы конечного заказчика тем самым решаете - а свои.
В движке ковыряться сложнее, но нужнее - так как там решаются высокоуровневые задачи.
Это не так (то есть можно обойтись одним SQL и не наворачивать ничего в движке) только на простых задачах.
Но когда задача уложняется - то нужно напрячь свой мозг и пойти разбираться в логике движка.
Многим программистам это не подсилу. 
Тут ведь уже нужно решать не простые примитивные тебе понятные программистские задачи,а вникать в проблемы предметной области.
На этом многие сливаются.
Еще одна причина - полноценная реляционная модель со интересующими вас связями плохо ложится на многие прикладные задачи, решаемые на CMS. Бессвязанные таблицы позволяют делать решение гибче, приближая реляционные СУБД к СУБД No-SQLПеренос логики из БД в движок позволяет многие задачи решать лучше. Например, такую важную вещь как кэширование. Да и много других.
Надеюсь, что из-за того что в некоторых субд такая возможность не сразу появилась
stackoverflow.com/questions/12971246/why-doesnt-my...