Yes, this seems to be great!
What I don't understand, is how do I get the list of transactions included in the block (listsinceblock returns an empty transaction array, which seems odd, right?).
Then I guess I could use massive "gettransaction" calls to reconstitute the graph of the transactions.
listsinceblock return transactions concerning addresses in your wallet. The same goes for gettransaction. Try getblock.