Without sounding argumentative, I am still not 100% convinced. Accelerated moves can be represented by gcode as much as non-accelerated moves. Ignoring the x3g limitations in accepting "varying acceleration", in my opinion the firmware should only read gcode line by line, and send the appropriate step pulses to the stepper motors. It should simply parse movement commands, not calculate acceleration for every move in the motion planner. Due to the large computational resources available to the slicing engine, it should calculate all acceleration in advance, and simply output an augmented gcode file with additional G1 or G1 moves that encompass accelerating and decelerating between movements.
I know that I can turn OFF firmware acceleration in Sailfish, and instead allow Cura to generate the acceleration enabled gcode. I can then convert the file from gcode to x3g with GPX, load it on my replicator, and during printing it will behave as though firmware acceleration was turned ON. This is pretty convincing that the gcode can contain accelerated moves that the firmware can simply read and execute, versus having the firmware read non-accelerated moves and then calculate acceleration on the fly.