I like vanilla. Don't get me wrong, chocolate is nice, so is strawberry. But nothing is as versatile as vanilla. Vanilla has a nice base flavor, but the real excitement comes when you start adding toppings to make your own unique flavor. I have no problem with Linux of the flavored variety, like Ubuntu, Red Hat, Fedora. They give you something tasty and functional right out of the box. The issue comes when you decided that the flavor is just slightly off.
Started off my day reading a good succinct overview of PHP caching techniques. You can find it over here.
Out of these listed, the absolute minimum for any PHP based deployment is an opcode cache. I've used APC successfully in the past for an Apache cluster, and I'm currently using XCache on our newest server. Of the two, XCache seems to be somewhat superior for Drupal, if not overall. I don't have any real hard numbers to back that up, but things just feel a bit more responsive and I haven't found any strange behavior using it. APC gives me a bit of a headache in regards to changing PHP script files. With a long TTL, APC doesn't seem to notice script changes until the currently cached one expires. I suppose this is the real idea behind opcode caching, but does require us to restart Apache after a code update.
XCache appears to be a bit more slick, noticing when the script changes on disk and recaching that particular file. Originally XCache was born of the lighthttpd project but is now used in Apache configurations, as I'm using it now. The actual XCache project page is a bit heavy on the d00d speak for my liking, but the product works well.
While acceleration is the prime reason for using an opcode cache, utilizing the ability to store variables in some kind of perminant store between requests (in something other than a session) is also important for people using a clustered database set. PHP doesn't include the default capacity to load balance SQL requests between servers, requiring coders to roll their own solution. Tracking connections between servers in an APC variable is a good way of doing this.