The reason to couple it to regalloc is that you only want to remat if it saves you a spill
Admittedly, this comes up more often in non-CPU backends.
Can you give an example?
Also loads and stores and function calls, but that's a bit finicky to tune. We usually tell people to update their programs when this is needed.