Hola, angel_dope.
Ciertamente el readonly no funciona, la verdad es nunca lo había probado. Lo que puedes hacer es que cuando el usuario lo desmarca volverlo a marcar y viceversa, con este sencillo código:
<input type="checkbox" checked onClick="this.checked= !this.checked">
Espero que te sirva. Saludos,