I wouldn't say they print money. From what I've gathered there is no money in domains, they need to sell other services like website hosting, email services and whatever to make a profit.
You can buy a domain without hosting, just point your domains DNS settings towards your free wordpress.com...