Well it is already the case, for example things like ROR or ROL are generated by optimizers[1] from certain patterns of bitops.
Most languages do have intrinsics for ROL/ROR at least, which you should generally use instead of relying on optimizer magic. I've certainly run into cases where those magic patterns don't get optimized (looking at you MSVC) but intrinsics always work.