There seems to be some confusion here:
Zero fees is enabled through the very structure of the network itself. You need to verify previous transactions when you yourself want to send iota txs, but it's such a negligible amount of PoW that you don't need further compensation. So IOTA is a self-sustaining ecosystem, unlike regular blockchains where you have a separate pool of people validating blocks via PoW or PoS who need to be compensated which manifests as a fee, IOTA instead spread the verification throughout the entire network of users.
So it's not like one of IOTA's unique selling points of zero fees hinges upon some abstract altruism (although as CfB points out empirical data from other projects plus evolution shows altruism is indeed also an effective enabler), instead it's an intrinsic part of the very architecture of the Tangle technology in IOTA itself.
It is not that zero fees hinge upon some abstract altruism, but rather that setting up and running nodes without financial compensation does.
If/when the technology is built into IoT device firmware the propagation of nodes is guaranteed. As far as humans are concerned it seems less likely that many (reliable) new nodes would appear on the network.
Im dont know how IOTA works but if Bitcoin's 51% attack involves an attacker having more hashrate, is there an IOTA 51% attack where the attacker has more nodes?
TL;DR: How does IOTA grow from 20 nodes to 2000 nodes?