New attempt below, using the polymorphic g_param_value_set_default() in all cases, but with the return converted specially as boolSV or newSVpv for bools and unichars. Maybe it'd be better to identify bool and unichar cases with some sort of test of the input pspec's G_PARAM_SPEC_GET_CLASS(), instead of adding "ALIAS"s.
Attachment:
GParamSpec.xs.default_value_2.diff
Description: Text Data
Attachment:
e.t.get_default.diff_2.diff
Description: Text Data