I believe abbreviations is great for use in filenames, number-series, 'hide full supplier-names' from documents etc.
Just had a look in the code-base for how and where the .abbr (
''.join([c for c in self.company_name.split()]).upper()) is created and there are quite a few places that do this. I vote for making this a "pluggable util" so that we can control this behaviour, edit upon creation and also setup some rules like uniqueness etc.
Not sure if there is a generic way to build generated fields things like this.