There is no such assumption. There points are valid. We have actually seen a decrease in the number of nodes. Why? Many people don't see a need in having a client running all the time. Why? Oh yeah absolutely no incentive expect doing the "right thing" to help the network. It is an interesting idea. It likely is not viable to change the protocol but if non mining nodes had an incentive to support the network by propagation we likely would see 10x maybe 50x as many nodes globally and the network would be much stronger.
But relaying for the sake of relaying doesn't really provide much value to the network besides providing more open ports— which are dirt cheap resources.
It would not increase the strength of the bitcoin distributed algorithm an ounce— that strength arises from validating the chain (which even offline clients will do when they come back online) and mining new blocks, not from flooding transactions.
I think it would be a _severe_ mistake to make the current crap P2P topology economically essential to the system. The current p2p behavior is an artifact of the network bootstrapping behavior and we'd likely be better off with something else— fortunately the transport network is irrelevant distributed algorithm so we can have different transports (even many different transports being used at once)... though this wouldn't be true if there was some crazy incentive system baked into the transport.
Though we are for the moment stuck with the existing topology and we have, in the past, run short on listening nodes— If you want to create an incentive to have more of them— it's pretty simple. Run a lottery: At random when a node gives you a transaction (perhaps a test transaction you originated someplace else in the network) give that node an IP transaction donation. This can be run as a donation funded thing like the faucet— or better, miners can use the lottery to reward nodes for forwarding them TXN fee carrying transactions. .. and this can be done without changing anything internal to bitcoin.
However I don't see _any_ evidence that an improvement in this area currently required. Moreover, if someone actually cared to improve things they should start by fixing UPNP so it doesn't time out shortly after startup. We'd probably get a significant boost in listening nodes that way.