From my point of view the database is always the bottleneck. Since i can scale the cpu power to any needed value. The db ressources are limited even with clustering or replication. I might be wrong here but these are my expierences so far with cloud software.
So I think that to keep relations off the db will save db ressources won't it ?
For instance if you have a users table and a user_friends table. The foreign key in user_friends is the primary key of the users table. So if I have relations like ON DELETE in the users table -> DELETE FROM user_friends... the database will to the magic to keep consistancy and run all the needed querys. Isn't it faster if my software will run two simple queries DELETE FROM users WHERE user_id... and DELETE FROM user_friends WHERE friend_id...
The downfall will be possible inconsistancy of course but doesn't this reduce the DB load at all ?