I've got a script that uses the NormalObjects function to perform a script on the first/only visible, unlocked (and with other functions) planar surface in a file. It seems to return objects that are locked or hidden.
Actually IsObjectHidden and IsObjectLocked also seem to not be returning what they are supposed to.
I believe NormalObjects was broken in SR8. But it has for sure been fixed in SR9. The function should return objects whose mode is "normal" and that reside on visible, unlocked layers.
IsObjectHidden and IsObjectLocked only look at the mode of the object - they do not take the layer into account.