He said it's disturbing, not that he wouldn't accept it. I agree, it's disturbing.  The idea of having to destroy and recreate an entity just to get it to change orientation is a ridiculous concept.

However, I see why it was done for Paintings; Because messing with the entity tracker is even more disturbing.  I'm not even sure there is a packet that the client would accept for changing orientation of hangings.  I have only found packets to remove entities and add them.  The entity tracker is even given an update interval that varies for different types of entities, and for Hanging entities it's Integer.MAX_VALUE (which at 20tps would be ~3.4yrs if I'm calculating that correctly). I don't believe the entity tracker is designed to support updating a Hanging entitie's orientation.  So really, instead of direct packet manipulation which will duplicate what this code results in, this seems to be the most straightforward approach with the given codebase that already has a proven implementation.