1st example:
Factory methods.
I know that the companion object can extend an other interface for example the factory interface. So there is kind of that way to go.
2nd example:
Static metadata which should be available for every inhering class. Those shouldn't be in every instance, as they are final per implementation. Also there would be poor performance when initializing instance of a class only to get the metadata.