Let $g\colon \Bbb R^2\to \Bbb R^2$ be a smooth map and $x_n\to x$ in $\Bbb R^2$ with $r_n:=|g(x_n)|\to 1$. Write $S_r:=\{z\in \Bbb R^2:|z|=r\}$ and assume $\text{im}(dg_{x_n})=T_{g(x_n)}(S_{r_n})$ for all $n$. Then $\text{im}(dg_x)\subseteq T_{g(x)}(S_1)$.
My attempt: Without loss of generality, assume $dg_x\neq 0$. So, we need to show, $\text{im}(dg_x)= T_{g(x)}(S_1)$.
Since $x_n\to x$ we have $g(x_n)\to g(x)$. So, we can write, $g(x)=(\cos\theta,\sin\theta)$ and $g(x_n)=(r_n\cos\theta_n, r_n\sin \theta_n)$ so that $\theta_n\to \theta$. Let $v_n=(-\sin\theta_n,\cos\theta_n)$ be a generator of $T_{g(x_n)}(S_{r_n})$ and $v=(-\sin\theta,\cos\theta)$ be a generator of $T_{g(x)}(S_1)$.
The derivative map $dg\colon \Bbb R^2\to L(\Bbb R^2,\Bbb R^2)$ is continuous implies $dg_{x_n}\to dg_x$, and this convergence an be thought as convergence of $2\times 2$-matrices. As $\text{rank}(dg_{x_n})=1$, we have $\text{rank}(dg_x)$ is either $0$ or $1$. From the assumption, $\text{rank}(dg_x)=1$.
Let $\widehat i,\widehat j\in \Bbb R^2\cong T_{x_n}\Bbb R^2$ be two perpendicular unit vectors. So, $dg_{x_n}(\widehat i)\to dg_x(\widehat i)$ and $dg_{x_n}(\widehat j)\to dg_x(\widehat j)$. Since, $dg_{x_n}(\bullet)\parallel v_n$ we have $\big\langle dg_{x_n}(\widehat i), g(x_n)\big\rangle=0=\big\langle dg_{x_n}(\widehat j), g(x_n)\big\rangle$, hence convergence of inner-product gives $$\big\langle dg_{x}(\widehat i), g(x)\big\rangle=0=\big\langle dg_{x}(\widehat j), g(x)\big\rangle,$$ i.e., $\text{im}(dg_x)=T_{g(x)}(S_1)$.
Is my attempt correct? Is there any other way of doing this?
As far as I understand, it's correct. But two parts of it seem unnecessary: