Keep in mind that Civ4 was designed to have consistent mechanics between single and multiplayer games. Allowing the defender to choose a unit for each and every attack would completely bog down multiplayer games. A single battle could take a decent portion of an hour.
Giving players control sounds nice in principle, but there are times when you're just bogging them down with more micromanagement, rather than enhancing gameplay.
Consider this, too: If this feature were implemented, there would be no way for the computer to predict your combat odds. As experienced players, this might not sound like a big deal to you, but it would make the game incredibly frustrating to anyone trying to learn the game in the first place. It would be hard to learn how good a unit is in a particular situation, or which promotions best fit for some situation.
The current rule - attacker chooses a unit, defender matches with the best against it - was very well thought out, in my opinion. It offers a great deal of strategic control, while maintaining streamlined gameplay.
Besides - I suggest that if you have big problems with the "wrong" defender being chosen often, you're not assembling your armies or choosing your promotions correctly.