My opinion here is that problems we have arise from the complexity of having a represent function in the DB at all. The function should never have existed and representation should only be handled by the form and/or grid.
Given that we have it, represent is thread safe and can be overwritten for each field so one can set it to what it should be before usage as a way to customize forms and grids.
I would not add additional complexity that makes it less intuitive and would require users to read the documentation.
Nothing already prevents users to create a function that takes a db and based on rules, sets the represent function for each one of its fields at any place in the code where it may be necessary.
What could be useful is to know if a field.represent was set manually or set by default. This would allow what you suggested in the other thread in order to give a better default for reference type fields.
I may work on that on the week-end.
Massimo