Different encoders for commutation and position loop

I am using these motors which contain both incremental and hall sensors, and an external microswitch as index channel. The hall sensors connect to the driver board for commutation, but the others connect to a higher level path planning controller.
It should be possible to do the same thing all in the motor controller as you suggest, but there are important caveats in your scenario.

The hot end of the bowden tube is only weakly coupled to motor commutation because of backlash, bowden stretch, filament compression, thermal expansion, filament moisture swelling, buckling of filament within tube, mechanical failure, filament empty, filament slippage, manually pushing stuck filament, programmed filament pullback, filament creep, varying filament pressure related to squish factor(width). So you are going to want to adjust the relationship between commutation and position setpoints based on the state of the machine. For that, it makes sense for your printer controller to do the outer(filament position) loop and the driver do the inner(commutation) loop.
The outer loop can notice when filament does not move as it has commanded detecting various problems. That will be handy information if used to improve print quality. However, the outer loop would work better if it also got the commutation signal so it had a more accurate velocity to compare.

Perhaps the driver could generate a quadrature output from the hall input. That would be easier for the print controller to compare to filament encoder.