Improve crosslinking between DataObjects

I am developing a quite complex web application with a lot of DataObjects and relations between them.

On the backend, to improve user experience, I would like to crosslink at least every has_one relation in getCMSField(). In the specific, if the has_one relation is readonly I would like a <a href="$CMSEditLink">$Title</a> LiteralField, otherwise I would like to add that very same link to whatever already scaffolded (a SearchableDropdownField I think).

I think this is a problem general enough that someone already nailed it.

Now I’m manually replacing the scaffolded fields with handcrafted HTMLReadonlyField or adding the CMS edit link with setDescription but this job is quite repetitive and error prone.