Your current structure sounds fine to me.
I think people will believe that B, C and D are inheriting A and not composing it.
If, as you say, B, C and D are only ever used by A then the casual user probably won't even consider that they exist. Anyone after more than that will read the documentation and so long as that is clear there should be no confusion.
What is the currently considered a best practices for module organization and naming when it comes to composition?
I don't know that there is really a set of best practices for that specifically. If in doubt, go for clarity (which is again in the eye of the beholder). If you have specifics (ie. the actual proposed names) then you can ask here or on PrePAN.