Есть ли смысл в нативных связях в БД, если relation в active record их дублируют?
Не стоит, если для вас сейчас это очевидно, это не значит, что оно останется очевидным через год или будет очевидным для того, кто в будущем вместо вас будет поддерживть код. В дополнение к этому вам придется написать подробную документацию к своему коду (проставить внешние ключи гораздо проще, чем описать 100 кусков кода, которые нужно учитывать просто потому, что ключи не проставлены), а вашему сменщику ее тщательным образом изучить перед началом работы и более того - постоянно держать в памяти. Не знаю как в yii, но в laravel с базой можно работать посредством Orm eloquent и query builder. В eloquent я еще могу описать некоторые правила, но у меня нет гарантий, что программист, который будет работать над проектом после меня не решит использовать query builder, обойдя стороной все всю логику, записанную в моделях. И и в случае с целостностью базы это проблемы не только программиста, это проблемы в первую очередь проекта. Php не надает по рукам такому программисту, а вот база данных запросто.
Безусловно смысл есть, имхо, это даже не обсуждается. Вся эта визуализация, автогенрация релейшенов и прочее - все это фигня по сравнению с главной задачей ключей: поддержание целостности данных. Это задача бд, и только она сможет качественно справиться с ней. Если нет осознания мега-важности целостности бд и роли ключей в этом - скорее всего просто мало опыта.
И аккуратней с каскадным удалением. Частенько при удалении должна отработать какя-то дополнительная логика, например в том же afterDelete. При каскадном удалении оно идет на уровне бд, а не на уровне приложения, поэтоу логика не отрабатывает.