This is a bit of a non-answer, but the underlying point may be useful.
As far as I am able, I don't choose a class to use. The majority of my documents are articles intended for publication in a journal. When I start writing the article, I don't usually have a particular journal in mind. But when I submit the article, I often find that the journal I do choose wants the article to use its "House Style", usually in the form of a class file. So if my article depends very much on a particular class, then I would have considerable hassle reformatting it to fit the new class.
In fact, I've gotten so fed up of this process that I've written a "wrapper" class which makes it easy to swap in and out the various journal classes whilst leaving my document unchanged.
So my advice is: do your best not to rely on any functionality provided by a class if there is any chance that you will want to change class at a later stage. If you find yourself needing some particular functionality that is provided by a certain class, then of course use that class. But then needing that functionality is sufficient reason to make a choice (and stick by it), and sufficient reason not to change your mind later on. In other words, making a choice for a positive reason is fine, but making a choice just because you feel that you ought to is not.
(In my ideal universe, classes would not provide any functionality - that would be provided by packages. Classes would be much more like CSS stylefiles and would just change how things looked. While I'm dreaming, I'd like a pony too.)