ну потому что так не принято делать
+ конечно при таком ручном подходе на пайпе нужно отбиваться от всякого мусора(((
return values.filter(v => !!v).join(separator);
А еще можно попробовать туда запихать data = [null, 2, '2', {t: 'tt'}, [], ['']]
и т.д.) и конечно оно сломается(