Actually, the core <$reveal> widget DOES let you compare arbitrary TextReference values. Instead of using the "state" and "text" params, using "text" and "default" params instead. The "default" param is used whenever the "state" param is blank **or missing**. Thus:
<$reveal default={{!!webid}} type="match" text="">
There is no webID
</$reveal>
Both "default" and "text" params can be used with ANY TextReference, including literals ("foo"), variables( <<foo>> ), and field references ( {{!!foo}} ).
enjoy,
-e
Eric Shulman
TiddlyTools.com: "Small Tools for Big Ideas!" (tm)
InsideTiddlyWiki: The Missing Manuals