This is exactly the same reason you wouldn't say:
When did you leave at ?
I left at 5:00 pm.
At 5:00 pm already answers to When, therefore at is redundant.
I can't say if they are strictly wrong grammatically, but you would not use them as they are, at best, clumsy and unnatural. Moreover, think about the situation where your interlocutor doesn't want to answer with for, but with since ?
However, in a discussion such as:
I've been working out
Really?! For how long?
Is acceptable, common, and may be even more natural than Really?! How long?.
Also, you wouldn't say:
How long are you here?
But:
How long are you here for?
Conclusion
As usual, context is key in English, and some expressions could be correct in some cases, but wrong in others, and your best ally is intuition and drowning yourself in English everyday.
In your case,
How long have you been learning English?
Is the natural way to say it.