In React wrapper library UIx that I'm working on there's defui
macro that compiles Hiccup directly into React's VirtualDOM. Apart from doing that the macro also hooks into the compiler to hoist constant parts of VirtualDOM across components and namespaces, so that those parts will be essentially interned (cached).
Here's an example of two components defined in different namespaces where both of them share a part of the structure.
(ns foo.core
(:require [uix.core.alpha :refer [defui]]))