You should mention this post is only relevant for single player, in which case I totally prefer creating 1 character FOR THE FIRST PLAYTHROUGH, as long as there is a real promise of interacting and interesting stories linked to companions.
However, for subsequent playthroughs, I'd prefer to be able to create my characters. There is a real community dedicated to optimization and speed running, or any other kind of "emerging" challenges. One Rat Farmer playthrough in Legend of Grimrock, perfectly balanced team in Baldur's gate, improbable party of warriors only in PoE... This is fun, and can provide great replayability to a game.
But really, in BG1 and 2 you could already create every character right from the start and just decline other companions. But you could also do the game the standard way and create only the main char.
I do not think this would be very hard to implement.
As far as MP goes, because I had a feeling the whole "create a char or play the host's companion" issue was about Multiplayer, it's very simple : everyone should be able to create their own character, and I can't even see that as up to discussion. The matter of revealing the origin story is inexistant, as the coop partners just don't have to tell you. Likewise, the matter of unique dialogue won't matter, since everyone is free to choose his own dialogue option.
I think a good solution could be to ask, at the character creation step, how many characters you want to create (or in the multiplayer case, ask each player if they want to create their character), and then just fill in the "non-created" slots with companion NPCs. That way, should a player want to control a pre-made character in multiplayer, they can, and should a player want to design their entire team in singleplayer, that's also a possibility. Everybody wins.
Absolutely. Give this man a cookie.