Yeah, that is one way of doing it, however my solution does it using a DataStorage element that has a simple string field in the ExtensibleStorage schema, where I store the list of ElementId’s as a json array. Using a datastorage object is also better in workshared environment, because you can’t edit the schema of elements borrowed by someone else. The best way is to use multiple DataStorage elements per different users.
I’ve created a free addin for this as an exercise: Favourite Views | Revit | Autodesk App Store
It is slower (the json string method) in theory, but never head performance issues with it yet.