If you use "fixed" you can set the first baseline to whatever you want.
'Fixed' is putting a full line outside the frame. Who would like to have that? Here you have them, no difference between 'ascent' and 'cap height', 'leading' extra white above the top line, 'fixed' silly. Normal text 20 on 20, heading 40 on 40, baselines 20 points from top of frame, text not on baselines. 'Ascent' and 'cap height' does not give the heading its 40 points.
Try setting the first baseline's minimum leading to something other than the usual default of zero -- and note that this setting doesn't require fixed width.
I think I do some more testing with the 'leading' option. Nevertheless it is strange that the simplest way does not exist as choice.
In juggling with paragraph styles, baseline positions and so on you often have to type the same measurements, say 12 pt, several times. With any change of the design of a document you have to do it again. It would be fine to have some parameters that could be set, say k=12 points and then you can use that k in different settings. Altering is changing of just that one k.
This works when setting is k on k points. Baseline option 'leading', custom baseline grid, start at 0, relative to frame, increment k. In the paragraph style a baseline shift of 0.32k (for every font a different experimental value). Headings here 2k on 3k with baseline shift k.Just an example.
Now the blue line is not showing the baseline but the line between ascenders and descenders. This gives correct headings inside text and at the top of a frame. No 'align to baseline grid' needed anymore as long as k is properly applied.
Regarding your wish for a variable (eg k=12) that can then easily be
changed: I use a script I have written which is quite nifty. It asks for
your old point size, and old leading, and for a new point size and new
leading. Then it goes through all the paragraph styles, and wherever it
finds a multiple of the old style or leading value, it replaces it with
the same multiple of the new values.
So, say your paragraph indent is 1em, which you've had to set as, say
12pt. And the "space after" is 6 points. And you've got this in various
You run the script, and tell it that instead of 12, your want 11 pt. The
script then goes though all the paragraph styles in the document, and
changes 12pt to 11pt, 6pt to 5.5pt, etc.
Is that close to what you're looking for?