I assume the body is going to change a lot of times during the game right?
What you could do then is create multiple bodies for each "state" of your hero, and switch from/to one of them (like AnimationSequence switches movie clips) so you don't actually have to create a new one everytime - the bodies would remain in memory, all you'd have to do is create something like updateAnimation which would be called on each update - which is outside of a box2D world simulation - so you can instead of removing it or destroying it, simply de-activate it.
I don't have any code example at this point, but this would be much better for memory.
And with only one body, perhaps with the same principle you could store many fixtures (in an array or vector or whatever) and add/remove them from the body - when that update is called - so you don't actually have to create more bodies ...
In nape for example, similarly, you can simply create several shapes and add remove them from the main body.
I think box2D has body scaling doesn't it? maybe you could use this to your advantage as well?