Aside from giving you an extremely minimal increase in speed at best, its possible this might not even always behave as you want it to:
Source:
How :hidden is determined was changed in jQuery 1.3.2. An element is
assumed to be hidden if it or any of its parents consumes no space in
the document. CSS visibility isn't taken into account (therefore
$(elem).css('visibility','hidden').is(':hidden') == false
).
Checking for visibility is not incredibly complex, but IMHO even this excerpt shows it is not exactly trivial. While you could deal with the issue of making sure your visibility check works properly while using :hidden
every time you want to make sure this code is working correctly, you could just forget the 5 milliseconds that you might have a chance at saving and instead save yourself the time spent to understand the code and check the documentation every time there might be a problem with this area.
Just use plain old show()
; if there was a reason to do a check beforehand, I'm confident that the good ol' folks who make jQuery would have either provided a recommendation to do so in the docs somewhere or just hardcoded the check into the show
method/ :D