I think if the administrator wants to remove a question when the question is off-topic or for some other reason, could we add a status of hiding (I mean the post will be not seen by others) and not remove the post forcefully? And let the user delete or fix it himself. Is this better?
This is sort of what happens now - every deleted post is still accessible by users over 10,000 reputation and can be restored if needed.
Deleted answers can still be edited by their author, but unfortunately deleted questions aren't visible to their authors unless they have 10,000 reputation. Requests to change that have so far gone unanswered, but personally I think we can/should fix that up.
In addition to that, we're currently working on some changes to the closing system that should allow for a more clear opportunity for the asker to fix their question if it was closed. No specific details on this exist yet as we're still defining exactly what we want to do, though there will likely be meta posts coming to solicit feedback and suggestions from the community here.
In the meantime, the current behaviour is by design and we won't be introducing "hidden" posts.