La langue française vient en grande majorité du latin. La règle
du « m » devant un « p » ou un « b » vient des
mots d’origine latine, comme « bombus » qui a donné bombe en français
actuel. En latin le « m » fait partie intégrante du mot. En ce qui
concerne bonbon, il vient simplement du langage enfantin et du doublement du
mot « bon ». A priori lorsqu’on demande à un enfant c’est bon, il
répond « bon bon », l’usage en a donc fait un mot. Il n’y a donc
aucune raison de mettre un « m » à ce mot. Dans toutes les langues d’origine
latine (espagnol et italien par exemple, la règle du « m » est
présente, ce qui est un bon moyen pour s’en souvenir !