The logic here is intentional:
drop_weight only acts on terms with a well-defined weight, and the $\epsilon (\epsilon^3 + 5)$ term is not of that type. So at the moment the answer is 'no'.
However, if your problem is that doing
distribute is going to mess up too many other terms, you can try zooming into the expression and only distributing terms which match a certain pattern. E.g.
zoom(_, $\epsilon Q??$);
would produce $(A+B)\epsilon^2 + 5\epsilon$, with the brackets in the first term intact.