Backdoor write to read-only register. Is it possible?

In reply to Reuben:

Looks like I was totally missing the point of the question here, so apologies I stand corrected. The issue I was referring to, was about multiple registers mapped to the same address with different access rights (sometimes this is needed), then in this case callbacks are activated which will trigger errors in case you did a write for an RO version of a register.

Now back to your question about regular “RO” registers. Backdoor reads (e.g. via peek) should be OK, they should read the register and update the shadow/main and mirror registers.
You can also use a backdoor (via UVM PLI) write (e.g. via poke), only glitch if the DUT is continuously updating the register, its value would be changed in the next cycle, at this moment you will have different main/mirror vs. DUT versions of the register so you need to accommodate for that. Regular testing is also valid (e.g. FD writes, FD/BD reads).
Hope this helps!

Ahmed