That's a good question, actually, I'm not sure I remember the original rationale (e.g. why not patch on the PPU via write combine?), but it's not entirely uncommon to do such things, really, just usually you have a custom front-end processor on the GPU that does DMA, etc., while on the RSX the real cost was the mode switch. Needless to say one of the earliest tasks leveraging the SPU was to move shader program patching there. (Another fun fact: stock Unreal 3 had only one SPU module, and it either did shader program patching or EDGE culling depending on the arguments passed. On Call of Duty we had in excess of 64 SPU modules by the time we finished MW3.)
I think Michal Drobot might discuss our up-sample approach at SIGGRAPH (other primary author here is Jorge Jimenez), but we don't use entity ID data as part of our custom up-sample in Infinite Warfare. DICE's is much closer to the "stock" up-sample arrangement.
Like anything sufficiently interesting, it's complicated, and workloads vary depending on requirements, context, etc. That's really my point most of the time posting in threads like this--it is essentially impossible for the consumer to ever understand the environment in which decisions like this are made or the real underlying reasons and rationale. And really, there's no reason to--that's why I like when DF just focuses on the end result *as observable by the consumer* e.g. doing analysis of frame pacing, resolution, etc. It avoids them getting into the dangerous territory of speculating about how hardware is designed, leveraged, and how software is written, which is far more complicated than possible to express accurately in web articles.