Why a same call back function being executed repeatedly

That’s normal and expected behavior, and has been that way since the V5 and VEXcode were introduced.
In general, callbacks should be registered once in main. There are exceptions to this, and ways to automatically unregister them, but it can get complicated.

Also, have a read of this, it touches on this subject.