I seem to remember that prod() used to use binary splitting, forming subproducts of roughly equal size so that
prod(i=1, #v, v[i])
was substantially faster than
s=1; for(i=1, #v, s*=v[i]); s
for v a decent-sized vector of integers > 1. But this is no longer true; in particular, emulating (what I remember to be) the old behavior
fakeprod(v,start=1,end=#v)=if(end-start<3, prod(i=start,end,v[i]), fakeprod(v,start,(start+end)\2)*fakeprod(v,(start+end)\2+1,end))