Interesting points, however I would draw a distinction between data integrity, business rules, and UI elements (such as formatting). Experience tells me that whatever is physically allowed in the DB...
I don't believe SCOPE_IDENTITY() solves the problem, as the initial insert and the audit trigger insert would both be within the context of the same connection.