Currently each user can turn off PMs entirely which goes some way to solving the problem.
But it's certainly a good idea to limit PMs in some way. One alternative to your solution would be allowing users to block other users.
I think both solutions would be possible via plugins - use a filter plugin and for each message you can check if each user follows the other.