Если функционал недостаточен на какой-нибудь CMS - лучше пишите свою, ну или либо тогда, когда нет таких CMS, которые вам подходят. Если писать на фреймворках - это лучше для безопасности (конечно об этом можно ещё подискутировать), так как другие не знаю ваш код. Да и функционал можете сделать какой хотите. Всё зависит от ваших знаний.