Assign entry id to title with entry form
That would be the same behavior for using {id} in the title format for new entries created in the control panel as well.

The problem with {id} is that's not known until the entry is already saved to the database since it's a database generated number.  That's why it's empty for new entries but re-saving the entry will cause it to appear.

The easiest thing to do would be to generate a unique ID from the template and save it to a custom field on the entry.