Gdybym nie umieścił stopPropagation(), a następnie kliknął w menu, to submenu natychmiast by się schowało (nawet byś nie zauważył) ponieważ by się odpaliło zdarzenie przypisane do <html> (które ma za zadanie chować menu).
Dzięki stopPropagation() zdarzenie przypisane do <html> już się nie odpali, bo zostaje zatrzymane (ono, jak i wszystkie inne zdarzenia następujące po nim).
Generalnie nie jestem pewien czy ta metoda zawsze odpowiada. Ja robiłem takie menu parokrotnie wykorzystując setTimeout(), ale już nie pamiętam z jakiego powodu, może z głupoty.

Pewnie są też inne sposoby.
@down
No to już się spotkałeś.

Ale racja, dla body to wygląda jakoś bardziej sensownie.