Graphical rewrite rules, as a form of end-user programming, suffer from their implicit underlying model. Interpretation of rewrite rules limited to syntactic properties makes it laborious for end users to define non-trivial behavior. Semantically enriched graphical rewrite rules have increased expressiveness, resulting in a significantly reduced number of rewrite rules. This reduction is essential in order to keep rewrite rule-based programming approaches feasible for end-user programming. The extension of the rewrite rule model with semantics not only benefits the definition of behavior but additionally it supports the entire visual programming process. Specifically the benefits include support for defining object look, laying out scenes consisting of dependent objects, defining behavior with a reduced number of rewrite rules, and reusing existing behaviors via rewrite rule analogies. These benefits are described in the context of the Agentsheets programming substrate.