"Split Features" and "Cut with Selected Polgyons" functions often turn polygons into linestrings.
Geometry should be strictly enforced to never generate a feature of another kind than the kind of the original (split or cut polygon).
Both GeoPackage and GeoJSON do support multiple geometry types (a mixture of multiplogons and linestrings in a single file and layer), but this does terrible things in other GIS software (when exporting file from QGIS and opening it with something else)