I don't believe this is a question of REST compliance as much as it is a question about your API in general. One could argue that a blanket GET with no parameters could be expected to return everything, however that's probably not a great implementation for your own sake.
Unlike command line tools, you are not required to provide proper usage details upon improper invocation. It's perfectly acceptable to merely return 400 for a bad request. You may like to provide more details but the harsh reality is that you may get a poorly implemented client who is making that request 5000 times a second and you want to do as little processing as possible. Your documentation should provide them the proper structure.
That being said, if it makes sense from your requirements that you return a sensible set of defaults then that is also fine.
However, it really depends on if you as an API provider believe that a GET without additional parameters is a valid request or not. That is completely up to you. Personally, I'd stick with the 400 just to force clients to be more specific and protect your resources.