я к тому, что если они оба - функции, почему во втором случае мы не можем сделать new foo (или можем в первом)
это вопрос терминологии, который не несет особого смысла, но называть встроенные типы функциями - у меня бы язык не повернулся
new создаёт новый объект, потом вызывает на нём данную функцию через call, потом смотрит результат ещё, но у стрелочной функции нет своего this, поэтому new не может вызвать её на созданном объекте.