I agree it's not very useful, because it's very unlikely that an assertion on a simple type will reference element names or type names, other than the built-in XSD atomic type names; but it's there for completeness. For example you can write
<xs:assertion xpathDefaultNamespace="
http://www.w3.org/2001/XMLSchema" test="$value castable as dateTime"/>
It's there for orthogonality. If there are lots of use cases for putting the attribute on xs:assert, but only a rather slender use case for putting it on xs:assertion, then it's better to put it on both for the sake of consistency.