if you look at the current mapping the schema has a column for list index which will not be required once the mapping is changed to bag. Object contract would not change but the DB schema may change.
I had problems because of unsaved-value attribute of CurrentStep and HistoryStep. The mapping file had unsaved-value as -1 and when a new current step was created it had 0 as the value in id field. If this is the case then hibernate thinks that the entity is already saved and does not issue a insert sql statement. It works perfectly after removing the unsaved-value attribute.
I have one concern which you have not addressed till now.
Are you planning for this store to use its own sessionFactory or it could also use a session factory supplied by the application ?