LGTM special thanks for your well reasoned and extensive commit message.
One thing to consider: since the mechanics are now very predictable, maybe we can name the property in after its mechanics? ie. french-correction -> stem-end-shorten or something? https://codereview.appspot.com/557500043/diff/551490044/lily/include/beam.hh File lily/include/beam.hh (right): https://codereview.appspot.com/557500043/diff/551490044/lily/include/beam.hh#newcode36 lily/include/beam.hh:36: struct Beam_stem_length Beam_stem_end ? https://codereview.appspot.com/557500043/