sul fatto che sia precisa direi di si, almeno, a me non ha mai dato problemi.
Sulla prima domanda non saprei, istintivamente, visto che deve solo ritornare true se trova il valore o false se non lo trova, direi di no. Lo legge tutto solo nel caso in cui non trova il valore e arriva quindi fino in fondo; se invece lo trova smette nel momento in cui lo trova. Lo vedo come uno spreco di tempo andare a leggere tutto l'array se si trova prima il valore specificato. Ma ripeto questa è solo una mia interpretazione, di più non so dirti.