Since my original post, I have spent some time studying the code and I suspect that somehow the inheritance between the shield_symbolizer_helper and the text_symbolizer_helper classes in include/mapnik/symbolizer_helpers.hpp is where things are getting a little confused. But since the behavior of the whole dx/dy, image-unlock, shield-dx,shield-dy model is slated for revision, I decided any patches on my part might be misguided.
And anyway, I found with a combined use of the shield symbolizer transform="translate(0,-5)" dy="1", I was able to come up with a work around that gets pretty close to the positioning I was looking for.
Thanks,
Anne Dean