Looks good to me. Thanks for polisihing my scribbles up. As you have mentioned before, you preserve the semantics of valueOf vs. encode() for the primary and fallback properties. It is a bit hard to unify as it would generate different behavior for 0-prefixed numbers.
Did you run some JMH tests as well? I suspect it should help the "no defaults" case (also nobody ever will notice :) Gruss Bernd