Historically, the parsing of queries in CirrusSearch is done based on regular expressions, etc, and is very brittle. Things like keyword search and boolean operators don't work as expected, which is confusing for users.
There has already been work done to introduce a query parser, but it's not complete.