It's not that bad. Signs are pretty innocuous.
From a programming perspective, giving signs differing abilities based on their text is an ugly hack.
From a programming perspective, right-clicking signs is an ugly and hackish... hack to make the feature work.
From a user perspective, right-clicking signs is a kludgy and inconsistent interface method, as normally right-clicking a sign does nothing, and whether or not a sign does anything depends entirely upon its text.
I am not opposed to the idea of lightswitches, elevators, or gates, but the implementation described sounds pretty terrible to me. If you add a feature like that, make use of the existing user interface tools, don't just tack on a new one with a totally different paradigm.
No problem at all with the description of bookcases in that, though.