It's not really a bug - more of a "feature". OpenAccess allows readonly cellViews to be modified in memory only (this is akin to the "scratch" mode that existed in CDB). The Create Ruler command takes advantage of this by storing rulers as a marker object in the database - this has benefit in that it allows you to have persistent rulers saved from one session to the next, to treat rulers as editable objects - so they can be stretched and so on, and other benefits. There's an option on the Editor Options to control whether rulers get saved (it deletes them at save time), but for readonly cellViews it modifies the database in memory to add the ruler marker objects. This is nothing to do with whether they are selectable or not.
When you stream out, it detects any cellViews which have been modified but not saved. Unfortunately it's not filtering out any cellViews which are readonly - so still prompts you to ask if you want to save them (if you try to save them, it will fail because the cellView is readonly - you'd have to make it editable which would then force a design management check out).
So it doesn't think they are checked out - it just notices that they have been saved.
One could argue either way as to whether it should prompt you to save readonly cellViews - if you don't like this behaviour, please contact customer support - maybe we can alter it or provide an option as to whether it prompts you or not.
Oh, and by the way, I merged your two separate questions on this into a single thread.