Even if the non-threaded runtime doesn't provide tools to implement it as efficiently, it's still possible to implement registerDelay with correct semantics. That would be a lot more pleasant to work with than an exception at run time.
On a side note, that current behavior isn't even mentioned in the haddocks, which makes it even more surprising.