default(attributes..) is no needed. You can already do this by:
pure @safe:
// your code
But what is needed is some way to disable those attributes. As you mentioned one way could be done by allowing this:
pure(false) or pure!false or @disable(pure,@nogc...)
From implementation point of view it is not hard. I have already implemented this before. I have even write some old DIP. But there is new DIP process so someone need to write a new one and need to be able to get it throw new DIP process. And I do not feel I have enough strength to do this right now.