You might find this solution interesting. I was trying to get an auto number without using a DB connection. I have seen a few solutions, for example at http://www.infopathdev.com/forums/ where the number is generated by a SQL Server Table, but that seemed a little complex for me to build in a day.
Here’s what I did:
Create a secondary data source that points to the SharePoint list and pick the custom field which I named "PONumber"

Add it to the form using a text box. InfoPath complains, but ignore errors upon publishing it.

Create a workflow that sets the field value after submit. This also insures a unique value since it is using the ID of the list. This workflow is set to start when an item is created.

The String Builder lets you put in the ID Variable of the SharePoint list.
And heres the final product. I haven’t thought of any reason why this won’t work well, except the number at the end, in this case, is the year. That will have to be manually changed in 09 and a new form library will need to be created of you want to start out in 09 with “ARL-1-09”.