В дополнение к причине, приведенной Николаем и другими, если вы не используете анонимное пространство имен, вы можете получить конфликт имен с другими глобальными данными. Если вы используете анонимное пространство имен, вы будете вместо этого скрывать глобальные данные.
С cprogramming.com : "Внутри пространства имен вы уверены, что никакие глобальные имена не будут конфликтовать, потому что имена функций каждого пространства имен имеют приоритет над внешними именами функций."