I don’t think there is a limit on how many material IDs you can import with your mesh as I’ve just did so with a mesh with 40ish with no. Is a recommended workflow? probably not because you’ll not have an asset that has a draw call of 96 material shaders. Not to mention anything within those shaders that adds to it.
By having the one mesh you’re now no able to occlude any part of it. If there are materials that are not on screen they will be rendered regardless. By using your second method and breaking up the mesh you’ll end up with a more stream lined way of handling culling and making sure you’re not getting extra draw calls that will add to your performance hit even though they are not on screen.