Currently the intraprocedural information in the database includes calls and field accesses (details at
http://semmle.com/content/view/50/143/), but indeed not enough to do things like points-to, and queries such as "on every path from a call to Lock.acquire() out of the method, Lock.release() is called".
We certainly plan to extend the populator to store the necessary information in the database: for one thing, then SemmleCode is useful for university courses on program analysis, and I happen to give one of those next year

Clearly the choice of IR to store in relational form is crucial. Obviously we're considering Jimple
http://en.wikipedia.org/wiki/JimpleThat would be extremely convenient for expressing analyses; the downside might be that it's rather expensive to construct from bytecode, thus potentially introducing a bottleneck in population from jars.
Another alternative might be Wala
http://wala.sourceforge.net/wiki/index.php/Main_PageOr Joeq
http://joeq.sourceforge.net/Whatever representation we use, it has to be 100% reliable.
Ondrej, do you have any experience with the other IRs besides Jimple? Any recommendations for what SemmleCode should use?