peterchen has a good answer. Here are some additional factors:
Good reasons:
Application has a lot of corner case features that aren't useful for the majority. This is common in the perversion of the 80/20 rule: 80% of the users want their own unique blend of 20% of the product features.
Product has a variety of work flows. I want display X with features A and B, but somebody else wants display X with features A and C.
Screen real estate is very expensive. Your example is mobile, but line of business (LOB) often have to share the desktop with other applications leading to a similar problem.
Some applications already provide this functionality in the form of custom toolbars in menus. This works because the layout or form is reasonably fixed. Allowing this in the rest of your layout can make things very confusing or lead to a less attractive and functional solution.
For example, the iGoogle page can be tailored to have your own components, but you're forced into a rather rigid column structure. It works to some degree because the components are reasonably independent of each other. Allowing your users to move around major display and navigation components could be problematic.
Movable items can create their own usability challenges and can be expensive to implement. Is the effort put into doing this right better than offering your user/customer a better experience or another feature ? An in between solution could involve predefined customer profiles. Identify the type of user and give them a solution that fits their need. Or, just give them a choice of a few useful layouts.
I work with large LOB applications and we are currently looking at this type of problem. The need and likely implementation is warranted. Another factor that is relevant for us: "Is this a user setting, an account profile shared by many users or a global configuration ?" The first choice is unique from the other two as it implies a separate configuration area or mode that is hidden from the user.