Other sports train hours a day too and don't have this problem. Phelps had muscle mass which burns calories. I eat more than most elite runners and don't train as much. 3 hours a day is what, an extra 2000 calories at best. Not hard to eat.
Ryan Hall even said he eats more now than he did than when he ran 20mi+ per day. I won't mention other names as I want to be respectful. Letsrun has lots of threads on this topic so its just an ugly part of the sport and we all know it exists.