回答
some とは、何かがある、という前提で、何かとかいつくかとかを表現することばです。
any とは、何かがある「かどうかわからない」、という前提で、何かとかいつくかとかを表現することばです。
(ちなみに、none は、明らかにその何かが「ない」という前提です。)
この質問では、彼が欲しかったところの「何か食べるもの」が、きっとあったのだろう、という前提でたずねているので、any よりは some を選んで
Did he want something to eat? と言っています。
同じように、例えば「お水は要りますか?」は
Do you want some water?
とききます。
これを
Do you want any water?
ときいてしまうと、いるかどうかわからない、要らないかもしれないよね、という前提で「お水はなくてもいいんですか?」というような意味になってしまいます。
ということは、
Did he want anything to eat? とたずねれば、
「彼は何か食べるものが欲しくはなかったのですか?」という感じのニュアンスになる、ということです。
同じように、肯定文(=ある、という前提がはっきりしている)で、
I want any water.
と言うと、欲しいといっているものが「ある」前提なのかどうかがはっきりしないので、すごくおかしなことになります。それで、肯定文では any は使わない、ということになっているわけです。
肯定文だから some、疑問文だから any ということではなくて、
そのものが「ある」という前提なのか、「あるのか?ないのか?」という前提なのかということで区別をすると理解しやすいと思います。