I cannot find the original email thread about this, but for records/posterity...
That was closed as "Won't Fix".
In short, why does 0.12 format as "0.12" instead of ".12" when textNumberPattern is "#.##". It would seem that "#.##" would mean the leading 0 is optional. But it doesn't.
ICU chooses the minimum number of integer digits to be 1 even when the textNumberPattern has "#" before the decimal point.
But, this would be a significant change in ICU behavior, so probably cannot change in ICU without requiring a switch be thrown to enable it.