There is nothing specifically wrong with your configuration, though your id-column really ought to be a numeric type. Additionally, you can replace your "databaseType" property with the attribute: dialect="H2".
Web sessions are indeed deleted from the database on expiration. It's a common misconception that the binary-keyed-jdbc-store stores a database record per session. This is not the case. This cache store implementation stores a database record for each hash bucket, where the cache entries of a given bucket are stored within the "datum" field. When a web session expires, this triggers an update of this record, not a deletion.
I strongly encourage you to update to WF11, whose jdbc-store implementation maps each cache entry to a separate database record. This is far more efficient than the binary-keyed-jdbc-store.
Thank you Paul for the explanation. I just tested with WF11 and it works as you said : one row per session, deleted at expiration.