The problem is not the resources needed to run a full node. The problem is a lack of incentives. If you want to have lots of full nodes running in the long run, you need to focus on those that do not do so for idealistic reasons, most notably the miners, payment processors, and exchanges. They all have advantages by doing so. Blockchain.info, for example, runs a full node to be able to display incoming transactions and to monitor the network. Adopting this view, the way forward is to grow Bitcoin as much as possible. The more users there are, the larger the ecosystem becomes and the more players there are that benefit from running a full node. We can't rely on the early enthusiasts. We need growth.
> Bitcoin is vulnerable to (and has been subject to) attacks by way of computationally expensive transactions
If you are referring to what I think, then there is a simple fix: do not allow larger transactions than before when increasing the block size. AFAIK, this is what Bitcoin Classic does.