Yop.
Il faut effectivement stopper la propagation, ceci étant dit, tu appliques ce comportement sur le mauvais élément, qui est (el: <a>) or, il aurait fallu l'appliquer sur l'élément (poper: <div>); donc créer un événement click sur poper qui lui stop véritablement la propagation.
Maintenant pour répondre à ton questionnement sur la construction de la popover, bien que les deux structures soient valides a>div / a+div, il vaut mieux privilégier la deuxième option, car le contenu de la popover pourrait, elle, rendre invalide a>div.
Par exemple, si ta popover peut contenir comme contenu, des éléments intéractifs (contenu intéractif), style des hyperliens, des boutons html et bien la deuxième option serait plus appropriée, car elle rendrait la première option invalide.
Exemple 1: a>div (valide)
<a href="#">
Ouvrir la popover
<div class="popover">
<p>Ceci est valide :-)</p>
<span>Ceci est valide :-)</span>
</div>
</a>
Exemple 2: a>div (invalide)
<a href="#">
Ouvrir la popover
<div class="popover">
<a href="#">Ceci est invalide :-(</a>
<button>Ceci est invalide :-(</button>
</div>
</a>
Exemple 3: a+div (sera toujours valide)
<a href="#">Ouvrir la popover</a>
<div class="popover">
<a href="#">Ceci est valide :-)</a>
<button>Ceci est valide :-)</button>
<p>Ceci est valide :-)</p>
<span>Ceci est valide :-)</span>
</div>
À savoir que si tu choisis la deuxième optiona+div, tu n'auras pas besoin de stopper la propagation sur ton élément popover.
Donc voilà voilà ^^