I try to optimise within the same feature set as much as possible, the closer you can give the client what they originally asked for the better in all honesty. It's just a case of managing expectations up front, and being realistic about what is possible, and what compromises...