I’ve tried to be charitable to Verisign in my reading of Site-Finder-gate. Even then it seems quite clear that they were deep within the grey areas of their contract with ICANN, and that they knowingly acted against the spirit of the Internet that they’d been entrusted to build. That said, I respect the hustle — Verisign were, and continue to be, a publicly traded company with a responsibility to deliver value to their shareholders, and this quasi-bait-and-switch was a pretty inspired way to do it.
Keep in mind, however, that free domain names are usually free only for one or two years, after which the registrar will bill you for the annual or biennial fee. In other words, the provider of the free domain name pays only for the first billing from the registrar. Also take note of whether or not the provider charges a fee for setting up a domain name. Most services offer to transfer an existing domain name to their servers at no cost, but sometimes you'll find a setup fee over and above the registrar's fee.
Sedo is where I bought my domain - over Escrow - and is a global marketplace to buy, sell, and park domain names. They've over 18 million domain names for sale, but the big part is that they're a huge, well-respected company. This may not be important if you're spending $150 on a domain, but in a $15,000+ purchase - which happens in many cases - you will be potentially buying from a foreign entity, that you don't know, and many of them will suggest an escrow payment. This means you put the money in an account owned by a third party that will hold it and only pass it on once the domain has been transferred over into their name (which in this case is what Sedo does). This can be quite disconcerting - but Sedo is well-known and has done many, many deals - and the process is about as full of hand-holding as handing tens or hundreds of thousands of dollars for a domain name can be.
A great domain name is a concise, easy to type, and memorable URL that reflects your brand or your website’s subject matter. Avoid using hyphens, strings of numbers, or unnecessary words to make it easy for your visitors to remember and find your website. Remember: A great domain name is one that your visitors can type correctly on their first try.