Der Unterschied ist, dass JavaScript abhängig vom Client ist. Das heißt, es kann ausgeführt werden, muss aber nicht. Was der Anwender mit seinem Browser macht, weißt Du in der Regel nicht. Von daher würde ich nie JavaScript verwenden, wenn es darum geht, was in die Datenbank geschrieben wird.
Smiley-Code per Javascript mit img-Tags zu ersetzen halte ich auch nicht für besonders glücklich. Du hast serverseitige Mittel, warum setzt Du sie nicht ein? Für sowas sind die da.