A few years ago a good share of the client browsers would choke on complex map renderings, lets say, more than a few thousand SVG complex polygons. At the time, for this kind of use case often it was faster to generate bitmap tiles at the server side. I wrote a tile server using Mapnik bindings for Python - and TileMill was of great help.
It is no longer the case, modern computers and browsers have acceptable performance when using vectorial maps even for very complex maps. The need for firing your own tile server is very unusual.
The most glaring difference is that label placement in common vector renderers is generally "try once, fail if no room", whereas in Mapnik (standard raster renderer), for example, you can supply a list of positions to try in order of preference.
There's a lot to like about client-side rendering (which is why I wrote https://github.com/systemed/tilemaker/ to generate vector tiles) but it's not up to feature parity with raster rendering yet, and for some of us those features are important.