This raises another question (maybe addressed by another of your patch?): what happens if an hard-interface currently enslaved in bat0 changes namespace? Will this result in an UNREGISTER event like when the interface gets destroyed? If not, I am not sure how the whole situation can still be consistent.
It seems that an UNREGISTER event is broadcasted when an hardif goes to another namespace. At net/dev/core.c:4915
Therefore batman-adv will do the right thing :)
Correct. An interface is effectively hotplugged from one namespace to another.
Andrew