The database that i mentioned is the best practice of infopath. The best practice is to have infopath form save all values into a database backend, like SQl server. This would help ensure no data is lost.
By allowing the database to handle the incrementing of the form or the sequential number is the best way to do it. That way if 10 forms are opened simultaneously, the number isn't generated on open, as this would put the forms out of order as far as the sequential number is concerned or if a user closed the form without submitting would generate a gap in the numbering. This way by using a database to produce your sequential number, it would generate it on submit(or you should set it up on submit) to query, find the highest number and increment, save the data to the database as the form is submitted to a sharepoint form library.