Yep I agree this should be deployed across the API and UI. It's common practice in most databases to separate the Display Name from the Database Name for the field - even Workfront allows this type of functionality in the reporting side where you can already rename the columns in a report.
This functionality needs to keep the database field name as the unique key, allowing the use of the same Display Name to refer to different Database Fields in multiple places in the UI.
Once this is implemented there is no need to use "special" characters in the Database Field Names, so the issue which seems to be driving the suggestion to use backend ID numbers instead of names ought to go away. The use of names rather than numbers in the API seems to me to at least provide some context to the data being manipulated.
