I only know to answer your no. 2:
> 2) What about the issue with excessive locking for foreign keys when
> inside a transaction? Has that issue disappeared in 8.2? And if not,
> would it affect similarly in the case of multiple-row inserts?
The exclusive lock is gone already starting with 8.0 IIRC, a
non-exclusive lock on the parent row is used instead. Thing is that this
is still too strong ;-)
The proper lock would be one which only prevents modification of the
parent key, other updates would be safe on the same row.
In any case, the current behavior is much better than what was before.
Cheers,
Csaba.