Currently, in the icon theme implementation, we cache the mapping between icon names and values, in order to not load the Icon Theme document every time.
Then, we use DefaultIconRenderer that executes the Velocity interpretor to compute the output code that display the icon. And we use this for every icon we render in a page.
This last step can take time (how much? should we do a benchmark?), so I propose to have a cache component for the rendering code corresponding to the icon.