My question is this:
cPanel (as with many other hosting control panels) is built for one thing, to ease the setup & maintenance no a linux server.
So, if joe blogs signs up for a hosting account, you want to simplify, and auto mate the process. This involves creating his UNIX username, home directory, email spool folders, and database permissions (amongst others)
cPanel then allows him to easily add / edit / delete email acocunts, sub domains, databases, FTP permissions, and more. So, if you want SMTP, IMAP & POP3 to be on server A, HTTP & HTTPS on server B, MySQL on server C, etc. How will you manage it?
How will cPanel know that when the user adds an email account it should look @ server A for the stuff.
How does the three servers sync permissions?
Yes, this can all easily be done with stuff like NIS, LDAP, even rsync, etc. The point of my argument is, cPanel (and I'm sure other control panels as well) is not written for this task. .... yet?
Rather, get server A, B & C up, and on the OS level cluster them, this will give you both load balancing, and redundancy, and then install cPanel. You could easily add more servers (physical machines), as the need arise, without having to move user's accounts around, reconfiguring software, etc. This also allows easy upgrading on both the hardward, and the underlying OS, on a per machine basic, without affecting the actual server
Different approach, same (or better) results.