What does "visible" actually mean?

“Visible” means that there is no touchability requirement, whereas the “any thing” token applies to any item in scope. Consider the following:

Lab is a room.
Closet is a room.

A glass box is a transparent, closed container. It is in lab.
An apple is in the glass box.
A broom is in the closet.

Pondering is an action applying to one visible thing. Understand "ponder [any thing]" as pondering.
Glancing at is an action applying to one visible thing. Understand "glance at [a thing]" as glancing at.
Poking is an action applying to one thing. Understand "poke [any thing]" as poking.
Cleaning with is an action applying to one thing. Understand "clean with [a thing]" as cleaning with.

After doing something:
    say "Action succeeded."

Test me with "ponder broom/ponder box/ponder apple/glance at broom/glance at box/glance at apple/poke broom/poke box/poke apple/clean with broom/clean with box/clean with apple".

You can see that pondering works always, no matter where the object is or whether it’s touchable or not.

If you change the the token from “any thing” to “a thing” you force the parser to consider the scope (only things that the player can see). Now the action fails for everything that isn’t in the same location (or anything that can’t be seen).

If you keep the “any thing” token and remove the visibility requirement (thus enforcing that the player must be able to touch the object; note that “…applying to one thing” is equal to “…applying to one touchable thing”), you get a response from trying to poke the broom that says you can’t touch the broom because it’s too far away (in another room).

Finally if you have the standard “a thing” token and the touchability requirement, the action fails for the broom (it’s not in scope) and the apple (not touchable).

Hopefully this clears it up a bit. The “visible” keyword is rather misleading and there’s a request that it should be changed.