To go back to the original posters question: How to estimate the current swarm size?
Seems to me you could get a pretty good estimate of the maximum historical swarm size (in terms of compute power, not nodes) based just by looking at the difficulty number. As I understand it, the difficulty is scaled up based on how fast the swarm can compute new blocks.
A more accurate and up-to-date estimate could be made based on the time it took for the last few blocks to be solved.
I can't imagine that there is (or could be!) an accurate way of estimating the number of nodes directly. Too many firewalls, tors, etc.