If you have a segment that is accelerating or decelerating, you divide that segment into 3 parts on the time axis (NOTE that parts are not made on the distance axis).
Yes, I understood that you divide a segment with constant acceleration a (coming from the trapezoidal planner) into a segment with acceleration < a and some sufficiently smooth form, then a "cruise" with acceleration slightly larger than a to make up for the slower smooth start/end segments, and then a smooth "deceleration" phase to get to the commanded exit velocity.
My question was regarding this smooth transition at the beginning/end of the segment, if the segment is too short (for a given jerk limit), you can't make up for lost time with larger acceleration.
If you don't guarantee a maximum jerk, that explains it. Short segments will then be executed violating the jerk limit.
I noticed that the linuxcnc trajectory planner has a cubic interpolator switched between the trajectory planner and command outputs, this seems to be a remnant from times when TRAJ_PERIOD usually was n times SERVO_PERIOD, n>1. If I understand correctly, this interpolator limits jerk somewhat. A step is spread out over 3 periods.