Is a skills-based character ability system enough in and of itself to discourage minmaxing? I don't think so... but I suspect it's good enough.
To start with, let me spell something out: I think the flatter the curve describing the number of characters with similar skills, the more fun the game is likely to be. So the point of all this isn't "discourage minmaxing" -- it's to encourage maximum diversity of character abilities.
If there are any game-y features in your virtual world, you're going to get minmaxers. There'll always be people whose entertainment comes from finding the saddle points in any equation, and then deriving as much gain from that knowledge as possible as quickly as possible. These are clever people by themselves, and they're even more effective when they work together to divide and conquer a set of data. And they'll do their thing regardless of whether power in your game comes from class-derived abilities or skill-derived abilities. But there's a still a difference in how this peak-seeking behavior can be addressed between games with classes and standalone-skill games.
A pure class system (every skill in a class is unique to that class) is actually more boring to minmaxers than a multi-classing or standalone-skill system. With a pure class system you can only compare one full class against another for power; it's an all-or-nothing deal. If you only offer a few classes, many players will take the one "best" class. That can make your game world look cookie-cutter pretty quickly -- the curve has just one very sharp peak.
The curve flattens slightly if you offer many pure classes, since -- assuming you've tried to power-balance the classes that have similar roles -- there'll be less agreement about which is the "best" class. Even if there's some argument about which class is the best, however, there'll still be a lot of clustering around the top two or three contenders for best class. Now the curve looks more like the classic bell curve as the "best" classes cluster around one favored game role. (Another aspect of the many-class approach is that you'll have to spend a lot of time generating the many distinct classes available, which doesn't seem to be something many developers want to do.)
A multi-classing system is a little more interesting to minmaxers because now they can mix and match dissimilar skills; they can combine skills from systems that were never thoroughly tested together (because no one ever imagined that anyone could be interested in such a combination). In this case, what can happen is that certain combinations will show "spikes" in power (until whatever allows the spike gets nerfed), but those spikes will show up in several different combinations. The result is that you again have just two or three "best" combinations of classes, but there's less clustering around a particular gameplay role than was the case in a many-class system -- the curve just appears to have several random spikes of the number of people taking certain multi-class combinations.
And then there's the the standalone-skill approach. This one has the same "problem" as the multi-classing system, only in spades -- there are likely to be more oddball combinations of skills that the QA folks or beta testers didn't think to try... but the minmaxers will. So there are likely to be more spikes as there'll be more combinations seen as having special benefits -- but from the point of view of trying to maximize the diversity of character abilities, that's actually a Good Thing. Each spike will be a little lower since there are more of them available. The result is that the standalone-skill model produces the flattest curve of characters with similar skill sets. There are still spikes, but because it's harder to tell which complete set of skills produces the overall "best" (most powerful) character, there are more spikes and fewer players per spike -- i.e., a flatter curve.
Therefore I favor a system in which any player can learn any skill over one in which skills are restricted by class. Not because the standalone-skill approach is better at preventing min-maxing than a class system, but because the inevitable minmaxing is distributed over a wider range of skill combinations.