I am looking for resources that describe, in detail, the design decisions involved in game engine architecture. I am especially looking for analysis of the pros and cons of different design decisions at the lowest levels of the engine. The ideal resource, for example, might compare an inheritance-based object hierarchy to a flat, component-based object hierarchy. Or it might compare an in-engine editor with a separate editor tool.
What I am not looking for is a tutorial on how to implement any particular decision -- I would rather have a resource that discusses why to implement a decision.
Are there any blogs or books out there that offer this kind of insight into the game engine design process?