it is kind of annoying to not receive the "Ultimate Answer" because the question is not the question that can receive it.
-Paul Keith
I've said this so many times when posting on various topics that I run the risk of getting lynched if I say it again so...
oh well, what the heck!"The perfect is the enemy of the good."
Once we stop wasting time looking for the absolute perfect answer to our problem, and concentrate instead on identifying a workable solution, there's no limit to what we can accomplish.
I usually shoot for a software solution that gives me 80-90% of what I'm looking for straight out of the box. I'll then fill in the remainder as time and resources permit. That doesn't stop me from looking for a 100% answer. But I don't sit around doing nothing in the meantime. If I can't subsequently fill in the missing piece (or two) of the puzzle, I have two options. I can either learn to live without; or kick what I've got to the curb and try something else. (FWIW, most times what remains missing is not a real problem - it's just an inconvenience.)
In a way, it's like programming.
When I first learned how to program, Prof. Kugel told my class that there were two basic ways to develop a major piece of software:
The first way was the "IBM Way." It was mostly for companies with time and money to spend. This method involved requirements planning, process analysis, abstract pseudocode drafts, prototypes, etc. etc. etc. Once all that was completed, then - and only then - did you start to code.
The second way was to go down to the computer room; grab any procedural code listing you found in the trash hopper; and then "bash at it" until it did what you wanted it to do. He half-jokingly remarked it would amaze most people how many of the applications they're currently using began their lives as part of a payroll program written five years earlier.
Oddly enough, both methods seemed to work. But of the two, the [bash/test/repeat] cycle generally yielded the most bang for the buck. And the core principles behind this method have evolved (with some refinement) into what is now referred to as the "rapid application development" process. RAD gets used extensively. The old IBM methodology has been largely forgotten.
So what to do?
Be pragmatic.
If it were me asking your original question, I think the best approach for me would be to learn ONE platform extremely well. Whether it's Wordpress, Joomla, MediaWiki, raw XHTML/CSS or whatever - I'd learn it inside out. Based on experience, I know once I did that, I'd be able to get it to do whatever I want. It might not be the optimal solution. Maybe not even a complete solution. But it would be a working solution. And that's better than nothing.
80% of something now is better than all of it someday. 
Just my 2ยข
