In JuMP we translate the constraint matrix into a ``SparseMatrixCSC`` in a single pass. Yes, we could filter out zeros here.

But I think the point is, sparse matrix formats are definitely not one-size-fits-all, so trying to be strict about having no non-zeros is just going to make some applications more difficult. For example, a common trick is to leave "gaps" between columns if it's possible that we may need to occasionally insert new elements. This could be implemented with a ``SparseMatrixCSC`` if zeros are accepted. If not, one would need to use a custom data structure and would instantly lose all of the functionality in Base that might be useful, such as sparse mat-vec products.

What's an example of a routine that crashes if explicit nonzeros are stored?