Fedora is the development workhorse from which RHEL versions are spawned and hardened.
In short, want to run a mission critical application for many years? Go RHEL (or CentOS if you do not care about support and extra bits or cannot afford it). Want more bleeding edge stuff and faster paced development and updates? Go Fedora.
Entirely legal and ethical under the GPL, and RH benefits from all the folks who know the RHEL system because of exposure to CentOS - when they're recommending a supported version of Linux, it's likely to be RHEL.
It feels a little bit more moral to load CentOS on a bunch of systems, than to load Red Hat on them and only pay for one support contract. As an analogy, Microsoft probably prefers people to pirate Windows than to switch to Linux/Chromebook.
The truth is, Red Hat is the only linux distro I can think of (besides maybe SuSE, but I don't know much about it) that has really made a significant push to take over the enterprise market from Microsoft (and now they've moved to trying to do the same thing to VMWare).
If you want a warranty/support contract, definitely purchase RHEL. If you don't need that, but want enterprise grade stability and compatibility, use CentOS. If you want to run Linux on your laptop, don't use either.
Actually CentOS 6.4 has been the most reliable thing on my Lenovo T61, T400 and Dell T3500. Everything works from hibernate, sleep, WiFi, SAS, SSD's out of the box with no configuration.
This is the polar opposite of Ubuntu, Debian stable, Debian testing and Mint which are royal bastards to get off the ground.
Never again. Always seemed laggy. I just loaded Scientific Linux 6.3 on 3 old thinkpads this past weekend. As you said, everything works. No "sudo vi /etc/X11/xorg.conf", no modprobe & ndiswrapper. Red Hat was my first peek at linux, so I'm a tad nostalgic (remember 9.1? crux, luxi sans?).
There is a super useful guide for the final polish on a EL6 system (extra repos, Flash, VLC, ..) here: http://astr.tohoku.ac.jp/~akhlaghi/newlinux.html
That's good because given the amount of code Red Hat contribute back to the community, including buying proprietary tools and open sourcing them, you'd look like a complete idiot.
That is, at least for major versions of software - they constantly update packages with security fixes that might come out, and continue this for years. This means even backporting security fixes from newer releases.
So you use CentOS when you don't mind packages being a little old, but want a very solid system with long term security updates (and there are the Software Collections coming out which let you get newer versions of certain things - like Postgres which is still 8.4 in the stock install)
Documentation is unsurpassed, it's very fast, it's pretty light weight, supported for a decade, stable ABI, completely hassle free, good OOB configuration, good 3rd party package support, available everywhere.
You use RHEL or it's derivatives for a series of reasons which all orbit around the same theme: supportability.
Red Hat works with major software and hardware vendors (especially 'enterprise' software and hardware) and with that you get official support between OS/Software/Hardware.
Red Hat releases stay viable for years and years so that the software you write will keep working with the same OS for years and years – OS updates won't kill software that used to work, and the setup you create will continue to work for quite a long time.
Red Hat keeps on top of security problems, fixes them quickly, and tells you about them in a professional manner.
Rogue hackers, brand new start-ups, and the like are very often much more interested in the latest and greatest thing and _not_ the long haul. Red Hat is conservative with what's new and popular focusing instead on maintainability and supportability.