Well I hope my read only file will not be too large (the size should be from 1MB to 10 MB; such is my current estimation). Since one of the main operations is searching for the data in this file and consequently I would have to read a lot of data from storage, it would be really a performance problem, if it would not be in cache.
The reason for clearing cache is in my current implementation, since this is the easiest way. All the changes are done in cache and are only stored to storage on "save". So, if a user decides to "cancel" current "unsaved" (to storage) work, clearing the cache sounds simple and efficient.
I agree that one could/should implement this in different way … But adding one public function for clearing specific cached file does not sound so awful, too. ;-)
In the end, it is you choice to decide, this is just my suggestion/input on this matter.