So far as I know Windows doesn't patch third-party code in memory, but it does enable compatibility quirks on a per-process basis based on recognition of certain programs. In some cases that approach may be superior to maintaining the old behaviour for all programs - the usual reason for wanting to change the implementation is to improve performance, and Windows can provide that improvement for most programs.
Linux does have per-process compatibility quirks (see setarch(8)) but no provision for enabling them automatically. I'm not sure why, though it may be that such recognition would be better implemented in userland.