It seems writeonly is a subset of readnone and are compatible. This corresponds to the beginning of the documentation on readnone.
On a function, this attribute indicates that the function computes its result (or decides to unwind an exception) based strictly on its arguments, without dereferencing any pointer arguments or otherwise accessing any mutable state (e.g. memory, control registers, etc) visible to caller functions.
However the next part of readnone's documentation seems unrelated to the readnone attribute and would conflict with writeonly.
It does not write through any pointer arguments (including byval arguments) and never changes any state visible to callers.
This patch would remove the conflict between writeonly and readnone.