So I haven't got my question answered, thus trying it again ;)
How do I handle SPI errors properly without rethrowing them or using subtransactions ? My current code works (simple PG_CATCH() with resseting of error state), but reports reference leaks for every failed SPI_exec() call...