Storing Materials in a library vs next to meshes

What are the pros and cons of organizing a project so that material instances are stored in a top level, Materials Library folder, vs storing material instances next to the meshes they are used with?

In my case I am using material instances so everything is inherited from a single master material, if that makes a difference.

I have seen projects organized both ways, and would like to hear why people choose one way or the other.

We did a lot of rejigging for how we kept materials… What we found worked best was to keep our parent materials in a global top level materials folder, as these parent materials are used by a lot of our assets in different asset folders (but the parent materials are heavily parameterised - textures, variable strengths etc - so all of our mesh assets use material instances based on these parent materials). We also keep generic textures here such as macro noises and colour filters.

The material instances and asset textures we keep in a subfolder of the asset set folder. This way they are quickly accessible when working with the assets. We found if you keep the instances in the top level global materials folder you just end up duplicating the folder structures and having to do a lot of unnecessary and confusing jumping back and forth in the content browser.

That’s helpful, thank you.