You could use trapezoid-shaped texcoords to do the same thing. That would use one texture for Semlar's example instead of anywhere between a few dozen to hundreds depending on the size of the output.
Code:
texture:SetTexCoord(ULx,ULy,LLx,LLy,URx,URy,LRx,LRy)
http://wow.gamepedia.com/API_Texture_SetTexCoord
This is the function we had to use to rotate textures before they gave us
texture:SetRotation() and the animation system.
Edit: Nevermind. Although it would work good in theory, the graphics engine doesn't quite support this.