http://php.net/manual/es/function.sqlsrv-prepare.php
Cierto no és un parámetro opcional.
No es que la estes declarando otra vez, la tienes en una variable y lo que haces es pasarla como parámetro....
Pero si es un poco inutil podría ser un parámetro opcional y que tomara la última conexión en caso de omitirla.... pero al función esta como esta. De hecho las librerias de mysql lo hacen así.