I thought using GL_DYNAMIC_READ for my instancing uniform buffers would be preferable to GL_STATIC_READ, but I eventually tracked a bug down to it, which would cause black triangles to appear, and sometimes vertices would be positioned incorrectly.
FYI.