Yes, it's not that easy... Take into account that there might be an alias and replacing parts of the SQL is undoable.
The SQL DQE has little maintenance overhead though, hardly a bug is found in there, so it can be an option for you (to run with a custom DQE).
Another element of focus is RelationCollection.ToQueryText. As I said earlier, the design for the hint support that IS there (NOLOCK) isn't really great
, as it doesn't pass the target to the hint provider. So IF that would be done, the hint provider routine can be much smarter and in THERE you then can specify the hint to emit, based on the table name passed in. (Check RelationCollection.cs, line 356 for example, which calls into SqlServerSpecificCreator.CreateHintStatement, line 520)
I'll add a request for a code change for v2.6, so we at least update the design in that area so customization on a detailed level doesn't have to take a lot of effort in a lot of areas.