The rationale to use different helper functions for DAG nodes with different Opcode is to specialize the optimization.
isBitfieldExtractOp shows how specialization based on Opcode could help.
This paves the way for enhancement in D135844: [AArch64][2/4]Regard (shl val, N) as a potential bit-field-positioning op regardless of the number of uses.
If this only has a single use it may be better to inline, so there is only a single variable pointing to Op.