Question about passthroughed data

Hi everyone,
I ran a series of jobs in two different ways and found different results:
route a: Extract->2D Classificaton-> Select 2D -> Ab initio ->Heterorefinement. Then the alignment of all classes are passthroughed.
route b: Extract -> Ab initio,
meanwhile Extract -> 2D Classification -> Select 2D -> Heterorefinement with the ab initio models followed by Extraction. Only the alignment of particles within each class is passthroughed. And this will report error if followed by NU-refinement.

What makes this difference? Why route b not allowed in cryosparc?

Output of heterorefine from route a:

Output of heterorefine from route b: