Потому что replace заменяет только первое вхождение. Если необходимо удалить все вхождения, то нужно использовать регулярные выражения. text = text.replace(/,/g, '');
Согласно style guide от Airbnb: следует избегать декларированных функций, тк они поднимаются и это вредит читабельности и поддержке.
Function declarations are hoisted, which means that it’s easy - too easy - to reference the function before it is defined in the file. This harms readability and maintainability.
Нет общих причин использовать тот или иной синтаксис для объявления функций.
В Реакт стрелочные функции используются для того, чтобы в обработчике событий не потерять контекст и не использовать bind. Если к контексту внутри функции не обращаются или нет шанса его потерять - рекомендуется не использовать стрелочные функции.
Это один из примеров, серебрянной пули нет, руководствуйтесь здравым смыслом и style guide конкретного фреймвока или конкретного проекта.