Grist is not really a spreadsheet, it's a row-orientated database-system. Quite different in usage.
Moreover, since it's using sqlite in the backend for the database, cells are allowed to hold the wrong type (and big, red warning colours light up when this happens). This is a sqlite characteristic. So while it mostly does enforce database-like behaviour, it also allows spreadsheet-like lax behaviour.
It really is a mixture of database and spreadsheet.