Edit : Laurent a posté pendant que je tappai ma réponse. Pour la version courte, voir son message, la mienne est un peu moins synthétique 
Un chunk est un bout de contenu ré-utilisable que ce soit du texte brut, du html ou du javascript. Concrètement tu créé un chunk pour un pied de page par exemple. Si tu as plusieurs modèles de page, il te suffit d’inclure le chunk avec la syntaxe {{mon_pied_de_page}} à l’endroit voulu plutôt que de recopier à chaque fois les infos (si tu as pas mal de modèles de page différent, c’est lourd). Deux avantages donc : ré-utiliser le contenu, centraliser sa mise à jour (je change le chunk, c’est reflété sur tous mes modèles) et donc éviter les erreurs.
Un snippet est différent d’un chunk parce qu’il contient du php et qu’il peut donc permettre des opérations sur l’information (trier, afficher, tester une condition, extraire une info de la BDD...etc). Le chunk ne permet pas ça, parcequ’il n’est pas autorisé à contenir du php. L’intérêt de différencier chunk et snippet c’est de dire au parser (le programme qui interprète les tags/balises MODx) qu’il ne doit pas interpréter le contenu d’un chunk de la même manière que celui d’un snippet. L’intérêt c’est aussi de contrôler qui a accès à quoi dans le manager : seul les dév ont accès aux snippets, mais par contre tu peux vouloir donner accès aux chunks à un designer.
Sinon, SMF c’est Simple Machines Forum, le forum de MODx utilise ce logiciel, et il existe un module pour MODx qui permet de lier MODx et SMF.