> Why should my app be smaller than 20-30MB if Facebook can get away with 400MB?
Because while some might tolerate FB, they might not you. And when they get that "storage full" message, your app will be one of the first out (I hope so, it sounds like it would be well deserved).
Have some respect for your users...