у современных жабаскриптовских движков некоторые операции трактуются по-особенному (intrinsic). до появления васма была такая хрень как asm.js. производители браузеров там перечислили и стандартизовали некоторый набор таких операций, и вот добавление пустой строки там служило операцией кастинга произвольного типа к строке. в смысле в случае строки оно ничего не стоит и никакой typeof там не нужен. аллоцировать новую строку и пытаться конкатенировать оно точно не должно.