could Lightning decentralisation be improved by giving node operators a "do not route" config option?
Node operators are already able to create private channels which are not announced to the rest of the network. This is why mobile wallets do not route payments. I don't think that it affects decentralisation in a positive way, but forcing someone to route payments is pointless and could be frustrating.
could the obverse be achieved by allowing clients to preferentially route through nodes with some definition of "fewer" channels?
What if some nodes somehow faked (lowered) the number of their channels? A channel is considered not capable of routing when it is offline. What if it could be exploited in some way?
how might this affect fees?
Wallets would have to have some sort of protection against overcharging (Eclair Mobile allows you to stop the payment if the fee is higher than 3% of payment's value). Some invidual nodes might have their fee policy set to ridiculously high values. Most big HUBs will offer low fees and short routes at least at the beginning.