Generating your own vector tiles gives you enormous control over what features are included and therefore the size and performance of your tileset. Choosing what features to reveal and style and at what zoom level can be handled by the mapping library (e.g., Mapbox GL JS) but if you know you aren't going to need, say, building footprints and heights, leaving them out of the tiles altogether will have an effect on tile delivery. Alternately, if you need non-standard data (I'm thinking of a project I did using OpenStreetMap's seamark tags for maritime features), generating your own may be the best/only solution.