I made a quick experiment during initial download and it showed that the memory size increases by about 2.55 kB per block on a 64 bits Linux system. That would be 3.6 GB for the current block count so that would match the 3.7 GB requirement. So it would grow by 1.26 GB each year.
The ability of my node to run the daemon with 3 GB (+0.5 swap) is thus likely due to the fact it runs on 32 bits, where the usage would be around 1.4 kB per block.
Yes it was Nu 2.1. It was abandoned because there were other priorities back then. I think it was almost working fine after @woodstockmerkle made significant improvements (and he also improved initial download times). I think the only remaining problem was some situations where the client had a burst of memory usage to the levels we currently experience (or maybe worse). And there has been changes since then so it would requires some work to merge all that.
Probably. There may be other ways to decrease memory usage or the rate at which it increases, but this one is probably the easiest since it was not very far from being finished.
Can you provide more information? Like the amount of memory you have and what I described earlier: