Well it is the responsibility for the WalletView to subscribe to its specific WalletModel. There is a one to one relationship between them. And there can be multiple pairs of WalletViews and WalletModels. Making BitcoinGUI subscribe to every WalletModel is hence a bit strange and complicates handling.

There is also a one to one correspondence between BitcoinGUI and ClientModel. There is only one client connection, and one BitcoinGUI.

If you don't understand, don't make changes to it, I'll handle this. There's enough concrete issues left to be solved.