The validity checks can be nice, but they also get in the way.
What happens when I am writing a query and realize that I will actually need another table or query underneath it? I can't save the query I am working on until I create the underlying table or query. Which means I have to leave my work unsaved while I do that. I would prefer to be able to save my query even though I know that it won't work right away.
Another situation: I need to change a column name in an underlying query table. I can't do that b/c another query or report depends on it. So I go to the query that depends on it to update the column name. But of course I can't save that b/c the underlying query hasn't been updated with new column name. I'm trapped!
All in all, I think I should be able to save whenever I want to, even if it's invalid. Warn me, but don't block it.