Por que há um pequeno espaço entre <img> e outros elementos?

Se um<div>&nbsp;ou qualquer outro elemento segue uma<img>, em seguida, um espaço em branco ~ 3px aparece entre eles - mesmo semargins&nbsp;são zerados.

<img src="example-fractal-art.png">
<div>What is with that gap?<div>

Aqui está o que parececom algum CSS.

Agora é muito fácil de jogardisplay: block&nbsp;no CSS eresolva o problema. Mas por que isso está aí? Não há margens computadas, preenchimento, bordas ou qualquer coisa assim.

O que os navegadores estão fazendo?&nbsp;Alguém até ligou"Magia".

P.S. Alternativamente, em alguns casos, é possível resolver issoremovendo o espaço em branco&nbsp;no código HTML. (Mas issonão funciona&nbsp;neste caso, por quê?