Both vertices and triangles use 2-byte indices and thus are limited to 64K. Most 3D cards today support 32 bit indices, but some old cards don't, that's why we still keep this limitation. Submeshes are just render passes of a mesh, and can not be culled separately.

However, a water mesh with 100K polys should not be a problem - just load it as terrain. Terrain can have an unlimited number of triangles and vertices.