I wouldn't really recommend it, but it is possible, yes. Even so you do need at least one VAO, so "entirely optional" isn't entirely true.
Would you say, that the proper OpenGL style is to have two VAO per model for instance? One for the lighting/g-buffer passe(s) and another for shadow passes.
In that case I don't understand the benefit of the 4.3 glBindVertexBuffer(), because it now seems it should still happen in a initialization phase.
Why would you need two different VAOs for that? Just don't use the normal information in the shadow pass shaders. If you maintain consistent attribute locations between shaders, a single VAO per mesh should do, IMO.