In chapter 17 of Fulton's Intersection Theory, he defines a bivariant intersection theory. I'm a bit puzzled by the pushforward/pullback he defines on page 322-323, though; they seem not analogous to each other, and indeed "orthogonal" in a sense.
In particular, if we took the pattern of the pushforward (and taking its notation), we could define an alternate pullback $f^*:A^*(Y\to Z)\to A^*(X\to Z)$ by $f^*(c)(\alpha)=f'^*(c(\alpha))$. It's not to hard to check this is even functorial and contravariant.
I see later on that the particular pullback and pushforward he defines satisfy the projection formula, which is very convincing evidence that they are the "right" definition. Indeed, if everything is a closed immersion, and we take the bivariant class to be the "intersection pullback" $f^!$ from chapter 6, I can see how pushforward and pullback correspond to pushforward and pullback of the corresponding cycle classes - but so does my alternate definition (though it seems more "precarious" and less natural since I end up with the pullback $f'^*([Y]\cdot \alpha)$, which happens to also be $[X]\cdot \alpha$ since everything's a closed immersion.) I don't have enough geometric intuition for the "Gysin homomorphisms" of the more general versions of Fulton's refined intersection products to try to obtain concrete understanding from a more complicated case than this.
So I was wondering why the seemingly more analogous versions of pullback fails. Does it fail to even satisfy the conditions on bivariant intersection classes? Or is it simply uninteresting/lacking nice properties? I tried working some of this out myself, but the fiber diagrams and algebraic detritus became rather intimidating, and so was wondering whether there was a "cleaner" conceptual explanation.