un #define du genre "#define MAX_SIZE 50" est à portée globale. Pour peux que tu inclues le fichier ou quoi, MAX_SIZE sera défini. Et tu peux très facilement définir un MAX_SIZE ailleurs qui va peut se retrouver au final écrasé ou vice-versa.
Alors qu'avec static const, si tu rédéfinis ta variable dans un autre fichier, et si tu inclues le premier, tu auras une erreur de compilo. Tu contrôles ainsi à la fois la valeur (tu es sûr qu'elle ne bougera pas malgré des étourderies) mais aussi le typage ...