AR: abstract model and eager loading

Have you considered using Single Table Inheritance (STI) to implement this? With STI you can persist your objects in only one table, and use the inheritance to keep your classes DRY.