"For me the issue with CPanel or Webmin is their dependency on specific application versions, specific configuration structure, and so on, and so on."
This is true of cPanel, but not Webmin. Webmin supports pretty much every version of every service it manages, and usually before new versions are even stable (we usually add support during the early betas or development cycle). Squid 3.0 was supported five years before anyone was even using Squid 3.0, for example...an extreme case, since Squid 3.0 took so long to become a reasonably stable alternative to 2.6 (rewrites take a long time).
"Webmin is an excellent example - it was removed from main Debian repositories because it became old and unreliable."
Webmin never became old and unreliable. The Debian package became old and unmaintained, and no one stepped up to maintain it. Completely different situation. Webmin has pretty much never gone more than three months without a release, and the release cycle is faster now than at any point in its history (about every two months). Webmin will probably find its way back into the Debian repository eventually (as soon as one of us has time/inclination to volunteer to maintain it).
Anyway, I'm completely comfortable on the command line, and I use both Webmin and ssh for my server maintenance. Not just because I'm one of the Webmin developers (I was a user before I joined the project), but because it provides a lot of nice benefits:
- You don't have to know the syntax of every service on your system. BIND and Sendmail both have notoriously confusing syntax, for example. I make mistakes when I edit them directly. I certainly can read the docs...but for simple updates, it's just faster to use Webmin.
- Webmin provides some services of its own, that are easy to use and generally useful. Stuff like service monitoring and alerts. Sure, I could setup mon or monit or one of the dozens of other monitoring apps, or I can just use Webmin, which I already use for a bunch of stuff.
- I prefer the Webmin MySQL module to phpMyAdmin, so I like having it around anyway. It means I don't have to consult the docs every time I want to create new tables, update tables, dump or restore a database, etc. I can certainly do all of that from the command line, but I usually have to look things up when I do, as I'm not a database guy most days.
- Delegation. Webmin has finer-grained ACLs for many things than are easy to implement on the command line. sudo is cool, but it is difficult to say something like, "OK, you can edit X, Y and Z hosts files in BIND, but not A, B, and C", while Webmin makes that really easy. And, of course, if I'm delegating, the person I've delegated to might not have any clue how to do things on the command line, but can be trained in the web UI in a few minutes.
You ought to know how to work on the command line, if you're administering a server, but it doesn't hurt to use tools to help you and make your life easier.
In short, you don't have to choose command line or control panel. At least not with Webmin. It parses and understand the config files, and respects comments and file order and such. It's perfectly safe to use Webmin and the command line for pretty much any task.