This answer tells us that functions like
ReplaceAll do not straightforwardly work for the entries of sparse arrays because a
SparseArray is an atomic object (though see the comments to this answer...?). As I find it a bit annoying and inelegant to have to do something like
SparseArray[ArrayRules @ # /. replacementrules, Dimensions @ #] &
when I want to use
ReplaceAll on the entries of a sparse array I was wondering why one would want
SparseArray (and similar functions) to be atomic in the first place: what are the benefits? In particular, if it is possible, I would like to see some practical examples of such benefits.