When using CacheStrategy(readOnly=true) ... the beans will by default try and hit the cache and return readOnly sharable instances.
When you query with query.setReadOnly(false) ... this should take precedence and the beans returned should all be editable.
Fixed in HEAD.