Thanks for your interest.
Of course it's a cool query!
The version you've given below is however not the most useful form: usually one is interested in polymorphic calls, so when the tool sees a call like "foo.bar()" you get not only the method "bar" in the static type of "foo", but also all its overrides in subclasses. To get that behaviour, you should be using "polyCalls".
For example, here is a query to find methods that are not called from Java code:
from Method main, Callable m
where not(main.hasName("main") and main.polyCalls+(m))
select m
Of course computing polyCalls+ can result in a huge relation, so such queries can be slow to evaluate. The good news is that we've invented a novel optimisation that makes the above query quite snappy - less than a minute on a modest laptop, with a moderately sized, fully populated project. That novel optimisation will be included in the professional edition of SemmleCode, to be released soon, so stay tuned!
One issue to watch out for when playing with queries over the call graph is that they only inspect calls from Java source or bytecode - if a call occurs via reflection, or from native code, it is ignored.
Hope this helps!