Here's the truth. Make an arcade game first, it's easy, fun, and you gain experience. I've made several arcade games and i am switching to DGDK, and guess what i plan on making first? That's right
an arcade game. Since your questions have been (basically) answered, i'll help you out with your programming hobby/career.
(also for #3, you'd basically just have the models of the characters cut into parts and swap them out when the user customizes it)
I started out like you, wanting to make a MMORPG in DBP, but after making a rather large (and inefficient) FPS which included a way to add several guns with little struggle. It was probably my biggest project to date, but i hated it. Not only did it just rot on my hard-drive, it seems like every line of code i added to it made it slower and slower, no matter how much i optimized my code. MMORPG's arent 1,000s of lines of codes, not even tens of thousands of lines of code, talk about millions of lines of code! And you need a way to update it without re downloading the client. You also need a crafting system, way to link web with your servers, way to host your servers. You need to basically start small and build your way up! Just my advice :3 take it or leave it! You will learn things that will make your code faster, easier to read, and of course shorter.