When the package is built, the QueryRangeFunction attribute directs the compiler to make them available for use in query dialogs. The syntax in the brackets is not X++, it is interpreted at runtime and just looks similar. The round bracket instructs the compiler to expect a field or function name, and any function not in the base SysQueryRangeUtil class requires the (<class name>::<function name>()) format.
The error checking is limited and the errors aren't helpful. For example, if we forget one of the colons, we will get an error suggesting that a right parenthesis is wrong. There is also no help to the user as to how to use them from within the user interface; so, we must provide documentation with these functions.
Apart from that, we get a very powerful way to provide the users with some very powerful functions that they can use to simplify and automate their processes.