The access rights depicting read/write is a “best estimate”. Every device implementation, even virtual devices such as PROPSERV or COVSERV, can be individually coded to accept or refuse Write Property service attempts. Sometimes devices will only allow writing in certain situations, for example, PROPSERV implements the somewhat obscure "writes to Binary Input present-value succeed only if they occur while the out-of-service property is TRUE." So for those, an attempt to write to the Binary Input present-value requires that one first write TRUE to the Binary Input out-of-service property, then write to the Binary Input present-value, then write back FALSE again to the Binary Input out-of-service property.
In conclusion, properties saying read-only might let a write succeed, or saying read/write but writes fail, BECAUSE special preamble steps have been done; all these variations are "within spec", both in the OPC specification and the BACnet specification.