About correctly rotated normals. It’s not that complicate neither expensive.
You just send angle of bone world rotation(or precalcualted sin/cos from that) and calculate 2x2 matrix at vertex shader and rotate light around z axel with that. If you have multiple lights then its cheaper to just rotate normal. 2d is special case so treat it like one.
SpineSpriteBatch with shader code behind the link http://pastebin.com/8U6vWr0P