As a sales engineer, I'm not sure I agree that employee views can be divided into a black-and-white categorization of X vs Y. I'm not lazy, want to avoid work, etc., and yet I still think a $200,000 deal requires more work and yields more profit for the company than a $5,000 deal, and thus I should be rewarded for that additional effort.
Comparing this reward system to coding or some other profit-generating segment of the company only works part of the time. With sales, the increased profits available for reward are immediately clear. With coding, the value-add of a coder's efforts are less clear, so it's up to his or her manager to see the financial impact of that employee and reward accordingly via bonus. Simple example: a friend of mine optimized some javascript, reduced the file size, and this ultimately saved his company over $200,000 a year in bandwidth. This is quite clear, whereas a simple bug fix or new feature is not.