Yes it's allowed to connect a signal to a signal, but try not to do it this way around. An object has the responsibility for what its signals mean and when they are emitted, so another object should not be subscribing its signals to anything.
(yes, I know this is broken in WalletView as well by passing in the gui object and then subscribing it to various signals, but let's keep it the exception not the rule)

Best would be to have message() signals propagate up the view chain toward the main BitcoinGUI object. Don't try to take shortcuts (certainly not through a model).