belongs_to with global cache

This is a difficult thing to describe. Maybe a better way of saying it
that I want to make sure that there is only one instance per row of an
object so that the runtime properties are always available.

That's sometimes knows as an identity map and is something that
activerecord just doesn't have. You may find that one way out is for
your class to have a map of ids to these runtime properties.