We've dealt with this issue a few different ways. I'll list them to give you an idea of what you could do.
I like your answer, I've played with leaflet enough that I just now handle a dynamic service as a feature service to enable the better drawing, using color symbology, popups, and dynamic legends. Also putting the labels in a separate service allows you to put them in a layer switcher and the user can turn the layer on/off himself.
Send me an e-mail, I’ll send some commented code …
BTW, I like Carlisle, my parents were there when I went to Ship.
ITS Group - GIS Developer
800 North Pearl Street- Room 222
Menards, NY 12204