Normally it is better to avoid unwanted stuff in a goal state, instead of removing it later. The way you formulate a proof problem affects the way you solve it.
This is particularly important for structured proofs: you appeal positively to those facts that should participate in the next step of the proof, instead of suppressing some of them negatively.
E.g. like this:
from `A` and `C` have D ...
Telling which facts are relevant to a proof is already a start for readability.
Following that style, your initial problem will look like this:
lemma
assumes A and B and C
shows D
proof -
from `A` and `C` show D sorry
qed
or like this with reduced verbosity, if A B C D are large propositions:
lemma
assumes a: A and b: B and c: C
shows D
proof -
from a c show ?thesis sorry
qed