Well, it OT here and belongs to -hackers, but as for me main use case here is ETL or ELT process getting a lot of unvalidated external data.
And a good option to solve this problem is not to change transaction semantics or slow down processing by adding tons of savepoints, but add "on error" clause to insert/copy statement.
This clause should allow to save records that can't fit into destination table because of type, check of referential constaints into error table. Oracle has similar functionality and we are using it in our project. No error is generated - no transaction rollback, batch abort or similar.
As for me it would cover 90% of use cases and would be really usefull. The one problem I can see is with inserting into partition parent.
Best regards, Vitalii Tymchyshyn