Yes, On Error GoTo 0 is strictly unnecessary in this case.
I usually include it in my posts because I assume that code may be added
to the snippets I provide. If the coder doesn't recognize the change in
error routines when they add that code, they may miss run-time errors.
In my own programming, both personal and commercial, I rarely rely on
the default behaviors. Partly because I won't necessarily remember the
code logic after six months (and another programmer wouldn't stand a
chance), though I tend to document pretty thoroughly. It's more of a
programming philosophy than anything else - if one sets a property, one
explicitly resets it on exit. It's a kind of discipline that has paid
dividends for me over the years.
The main exception I make is destroying objects. My experience, and a
bit of corroboration from others, leads me to believe that VBA's garbage
collection and end of procedure routines handle destroying out-of-scope
objects more efficiently than explicitly destroying them in code.