It's not for display.
why would someone set a constant MAX_MONEY = 21000000 * COIN; for display purposes? The display would never go past that so it would be useless to set that constant just to control display.
So in fact, the BTC value is set in code.
The transaction fee per kB is also set in the code. That doesn't mean that it can't be changed.
COIN is used in various places in the code to make BTC amounts easier for programmers to read.
MAX_MONEY = 21000000 * COIN is the same as
MAX_MONEY = 2100000000000000. Except in a small amount of code very close to the UI, all Bitcoin values in the code are stored as integer satoshi amounts. (MAX_MONEY is used in transaction verification, but its unit is not BTC.)