All static variables are guaranteed to be initialized to zero by the C standard section 6.7.8/10.  It's actually (a tiny bit) wasteful to initialize static variables to zero since it means storing another zero in the .data segment (ie. initialized data) in flash rather than placing the variable in the .bss segment which takes no space in the flash.  I'd say it is generally bad form to explicitly init static vars to zero.

I'm not sure what you mean by sneaking a variable into the file.  My preference is to keep the declaration closest to where it is used rather than putting them all at the top of the file.  This helps people to delete the static variables when they delete/modify the function that uses them.  I can move it if you feel strongly about it.