My Algebra $2$ teacher stressed the fact that when you find the inverse $g$ of a function $f$, you must not only check that $$f \circ g=\operatorname{id}$$ but you must also check that $$g \circ f=\operatorname{id}$$ For example, if $$f(x)=x^2$$ then $$g(x)=\sqrt{x}$$ is not its inverse, because $$f(g(x))=\sqrt{x^2}=|x|\ne x$$ However, I feel that this is minor... $|x|$ is equal to $x$ half of the time (if $x$ is real) and the other half of the time, it is just $-x$.
Can anyone think of an example of two functions $f$ and $g$ such that $$f \circ g=\operatorname{id}$$ but, when composed in the other order, the result is something totally wacky that is almost never equal to $\operatorname{id}$?
Consider $f:\Bbb R \times \Bbb R \to \Bbb R$ and $g:\Bbb R \to \Bbb R \times \Bbb R $ to be defined by $$ f(x,y) = x \qquad g(x) = (x,0) $$ Surely, we have $f \circ g = \operatorname{id}_{\Bbb R}$. However, we have $$ [g \circ f](x,y) = (x,0) $$ which is certainly not the identity on $\Bbb R \times \Bbb R$. I would say it is "almost never" the identity function in the sense that the $x$-axis is an "infinitely small fraction" of the entire $xy$-plane.
It is notable that if $f \circ g = \operatorname{id}$, then $g \circ f$ will always be equal to the identity over the range of $g$. In particular: for any $y$ in the range of $g$, we can write $y = g(x)$ for some $x$ in the domain of $g$, and so we have $$ [g \circ f](y) = [g \circ f](g(x)) = g([f \circ g](x)) = g(\operatorname{id}(x)) = g(x) = y $$ You may want to verify that $f$ will have a "left-inverse" in this sense if and only if it is injective (one-to-one), just as $g$ will have a "right-inverse" in this sense if and only if it is surjective (onto).
We can conclude from all this that if $f,g: \Bbb R \to \Bbb R$ are such that $f \circ g = \operatorname{id}$, then we will have $g \circ f = \operatorname{id}$ on at least some uncountable subset of $\Bbb R$.