Labor is a cost center to be minimized for a business.
Your goal is to make money. If you can do that by having $0 in labor costs, then you want to.
The reason programmers aren't paid in proportion to their productivity is the same that every other profession also is not.
You get paid the least your employer can get away with paying you, not what you "deserve".
It's better if everyone recognizes this.
You probably want to avoid companies where the incentives aren't in place for you to grow.