The reason i like normalization to be optional by a person who chooses it is because 90% of the time if you have a direction , up or right vectors they will be normalized. Also the billboard function have them normalized before the need to call the lookat ( or whatever ) function.
From a quick look in the code a normalization will cost you 
6 multiplication
1 divivision
1 sqrt
1 if (and 1 Math.Abs)
Multiply this x3 for each forward,up,right vectors and you can see why your thousands of LookAt/Billboard particles start eating up unnecessary CPU :)