From what I understand «зачем» means "for what purpose", trying to distinguish between that and «для чего» does not translate well. Additionally, how does «зачем» compare with «почему»?
Зачем refers for factual purpose while для чего is for intended purpose (для чего эта кнопка? "what is this button for?" vs. зачем ты нажал эту кнопку? "why did you press this button?").
Почему asks for reasons or causes, not purposes — i.e. where meaningful intent is not involved (generally, anyway; you might come across some examples that blur these distinctions).
Зачем is about a purpose and почему is about circumstances
Imagine you meet friend in shop and ask him why is he came there. And this dialogue is happened:
- Зачем ты здесь / Why you are here? - Купить молока / To buy a milk
Or it can be that way
- Почему ты здесь / Why you are here? - У меня кончилось молоко / I ran out of milk
The difference is subtle and you can almost always replace one with the other without any problem.