To me, the main limitation of hosted feature layers are symbology and labels.
You can’t have hatch or symbologies like arrows on lines to represent slopes and other complex symbology. In the same way, the labelling engine is not as powerful as what can be done server side and result many times in overlapped labels.
For all those reasons, I can’t manage our GIS solely with hosted feature layers.
Maps SDK 4.X solved the issue of renderering many features at the same time which could also have been one reason to choose Map image Layer over feature layer for some dataset.
There must be others but that the main ones on top of my head.