No - the only problem I had was lack of time and energy, given the number of cases that need to be covered.
On implementation: while re-using the existing Decimal formatting may look attractive, I’d recommend avoiding coupling the Fraction formatting to the Decimal formatting and re-implementing from scratch. That said, some of the existing formatting code in _pydecimal.py may be helpful as a starting point, and the existing behaviour for int, float and Decimal should help inform all the little design decisions that need to be made for the many and various corner cases.
This thread seems to have wandered off-trail somewhat; my understanding of the original need was for the f, g, %, and e format specifiers to work for Fraction objects in essentially the same way that they would if the Fraction object were converted to float first, but without suffering the loss of precision that would be incurred from that conversion. That was the specific need that my “something I’m often wanted” comment referred to, and I think it would be a reasonably coherent and self-contained addition for Python 3.12 - other more exotic format specifiers could come later.
Of those format specifiers, the .f format specifier is easiest to implement, so may be a good starting point. I made a POC PR here: bpo-67790: Add float-style formatting for Fraction objects by mdickinson · Pull Request #1 · mdickinson/cpython · GitHub (the PR is against main on my own fork rather than the python/cpython main branch, since I don’t yet want to bother upstream with this). The PR includes tests, but does not include any documentation changes, and does not go beyond implementing the f-format. It might give a good idea of the size of the problem. (Not small, but not too large either.)
Quick examples:
Python 3.12.0a2+ (heads/fraction-format:8cf8d31ce7, Dec 3 2022, 17:24:40) [Clang 14.0.0 (clang-1400.0.29.202)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from fractions import Fraction as F
>>> f = F(22, 7)
>>> format(f, 'f')
'3.142857'
>>> f'{f:f}'
'3.142857'
>>> format(f, '.50f')
'3.14285714285714285714285714285714285714285714285714'
>>> format(F('123456789.12345678'), '_.6f')
'123_456_789.123457'
>>> format(f, '020,f')
'0,000,000,003.142857'
>>> format(f, 'X^20f')
'XXXXXX3.142857XXXXXX'