What I want with that patch is that if some key is pressed on read-only area in non-read-only buffer, then quail should do what it does as if buffer marked as read only, i.e. no input method translations are done, and all single char bindings continue to work.

Possible we need to check front-stickyness of the char at point along with 'read-only property:

..
                   (and (get-char-property (point) 'read-only)
                        (get-char-property (point) 'front-sticky)))

..