No... sort of, there is no consensus... but the tendency is that GL driver developers tend to suggest multiple VAOs, while game developers (with real world scenario experience) tend to suggest one global VAO.
Multiple VAO's is seemingly easier, except I run into cases that need to change/adapt the VAO, then things begin getting messier and I find myself wishing I had stayed with a single VAO.
Mmmm... that's a red flag. You shouldn't be needting to change/adapt a VAO.
Shader explicit locations was added to solve the problem that a mesh with position (0), normals (1) and uvs (2) couldn't be used with a shader that only used position (0) and uv (1) unless you modify the vao to set the uv to 1 and disable the normals. With shader explicit locations, there's no longer need to change the VAO.
It also shall be noted on modern GL, the AZDO (Approaching Zero Driver Overhead) techniques recommend to preallocate a very large buffer object and batch all your meshe data there (combining the vertex and index data into the same buffer object; then bind the same buffer object into both the ARRAYS and ELEMENTS_ARRAYS bind point, this is legal). Therefore you would only need one VAO per vertex format since the vbo and ebo always stay the same.
And then use glDrawElementsBaseVertex to offset both the starting vertex in the vbo and the starting index in the ebo.
In the context of AZDO techniques; the driver overhead is so low (and switching/modifying VAOs is so infrequent) that it is probably more convenient to choose to use multiple Vaos (due to their convenience and simplicity) rather than use a global VAO; since performance stops being the determining factor.