I myself has encountered something similar, but I'm not entirely sure if it's the same situation.
Basically, Let's look at this node I created:
>Player(KinematicBody2D)
> CollisionShape2D
> Sprite
> Area2D
>CollisionShape2D
The situation where I encountered this problem was when my Area2D's collisionshape was overlapping my KinematicBody2D's collisionshape and they were on the same Physics Layer and Mask. Thus, on initialization, Area2D's body entered/exited is triggered. But in your case, I'm not entirely sure.
So a quick debug would be:
func _body_entered(body):
print(body.name)
func _body_exited(body):
print(body.name)
Which should tell you which body is being detected.