Euler tour works with any segment tree operation: min, max, GCD, XOR. Subtree minimum query?
Store values at tin[v], query range [tin[v], tout[v]] for minimum. Subtree XOR?
Same structure, different operation. The flattening is operation-agnostic. Choose your segment tree operation based on the problem. You build the Euler tour once and can attach any range data structure on top. If the problem changes the operation, only the segment tree changes, not the tour.