Возможно, это опечатка, и планировалось написать что-то вроде такого выражения: val[3] += fWValue.
Это не ошибка и такое не планировалось. Там просто получается вектор float[4] для установки в шейдер и этому вектору компонента w ставится из параметра.
Боремся с хедкрабами в исходниках Source SDK