Hmm, a conversation I had with a co-worker yesterday is making me think this could be done automatically inside GeoServer by taking a "pattern along path" transformation (What we were talking about) and inverting it.