If we allow user to specify own gist_penalty function, then such function should deal with:
1) GiST-specific data structures such as GISTENTRY.
2) Decomposing ranges using range_deserialize.
3) Inifinities, which we could handle in general penalty functions.
Thats why I prefere to implement subtype_diff.
I forgot another agument for having subtype_diff:
4) In my picksplit algorithm it would be more natural to use subtype_diff for measuring overlap than use penalty function.
------
With best regards,
Alexander Korotkov.