[proofplan]
We prove the isomorphism by comparing bases rather than trying to classify all circuit boundaries directly. The bases of $M(G)$ are the spanning trees of $G$, while the bases of $M(G)^*$ are complements of spanning trees of $G$. After formally defining the dual-edge operation, we prove that a set of primal edges is a spanning tree of $G$ if and only if the complementary set of dual edges is a spanning tree of $G^\dagger$. This basis correspondence includes bridges and loops automatically, so the edge bijection $e \leftrightarrow e^\dagger$ identifies $M(G^\dagger)$ with $M(G)^*$.
[/proofplan]
[step:Identify bases in the graphic matroid and in its dual]
Let $E$ denote the edge set of $G$, and let $E^\dagger$ denote the edge set of $G^\dagger$. The plane dual is constructed by placing one dual vertex in each face of the spherical embedding of $G$ and, for each primal edge $e \in E$, drawing one dual edge $e^\dagger \in E^\dagger$ crossing $e$ once and no other primal edge. If $e$ separates two distinct faces, then $e^\dagger$ joins the corresponding two dual vertices; if both sides of $e$ lie in the same face, then $e^\dagger$ is a loop at the corresponding dual vertex. Define the edge bijection $\varphi:E \to E^\dagger$ by $\varphi(e)=e^\dagger$. For a set $A \subset E$, define $A^\dagger:=\varphi(A) \subset E^\dagger$.
By the definition of the cycle matroid of a finite graph, the independent sets of $M(G)$ are the forests of $G$, so maximal independent sets are precisely the edge sets of spanning trees of $G$ because $G$ is connected. This convention includes loops and bridges: a loop belongs to no spanning tree, and a bridge belongs to every spanning tree. By the definition of the dual matroid, the bases of $M(G)^*$ are precisely the complements $E \setminus T$, where $T \subset E$ is a basis of $M(G)$.
Therefore it is enough to prove the following equivalence for every subset $T \subset E$: $T$ is a spanning tree of $G$ if and only if $E^\dagger \setminus T^\dagger$ is a spanning tree of $G^\dagger$.
[/step]
[step:Prove the complementary dual edge set is connected]
Let $T \subset E$ be a spanning tree of $G$. Let $V(G^\dagger)$ denote the vertex set of the dual graph $G^\dagger$, and let $S^2$ denote the sphere in which $G$ is embedded. Define $H^\dagger$ to be the spanning subgraph of $G^\dagger$ with vertex set $V(G^\dagger)$ and edge set $E^\dagger \setminus T^\dagger$. We first prove that $H^\dagger$ is connected.
Suppose, toward a contradiction, that $H^\dagger$ is disconnected. Then there is a nonempty proper subset $X$ of $V(G^\dagger)$ such that no edge of $H^\dagger$ has one endpoint in $X$ and the other endpoint in $V(G^\dagger) \setminus X$. Since vertices of $G^\dagger$ are faces of the embedding of $G$, let $R_X \subset S^2$ denote the union of the closed faces corresponding to vertices in $X$. Because both $X$ and its complement are nonempty, the topological boundary of $R_X$ contains at least one primal edge. Every primal edge on this boundary has its dual edge crossing from $X$ to $V(G^\dagger) \setminus X$, so by the choice of $X$ each such primal edge lies in $T$.
Let $C_X \subset E$ denote the set of primal edges whose dual edges have one endpoint in $X$ and one endpoint in $V(G^\dagger) \setminus X$. The preceding paragraph proves $C_X \subset T$, and $C_X$ is nonempty because the topological boundary of $R_X$ contains a primal edge.
We prove that the subgraph of $G$ with edge set $C_X$ contains a graph-theoretic cycle. At any vertex $p$ of the embedded graph $G$, take a sufficiently small circle around $p$ meeting each incident edge-end exactly once and no other part of $G$. The complementary arcs of this circle lie in faces of $G$, hence each arc is labelled by membership in $X$ or in $V(G^\dagger) \setminus X$. An incident edge-end belongs to $C_X$ exactly when the two adjacent arcs have different labels. Around a circle, the number of transitions between two labels is even, so every vertex has even degree in the subgraph with edge set $C_X$, with a loop counted twice at its incident vertex. A finite nonempty graph in which every vertex has even degree contains a closed trail, and every closed trail contains a graph-theoretic cycle; a loop is a one-edge cycle, and parallel edges may form a two-edge cycle. Thus $C_X$ contains a cycle of $G$.
Since $C_X \subset T$, this gives a cycle contained in $T$, contradicting that $T$ is a tree. Therefore $H^\dagger$ is connected.
[guided]
The point of this step is to show that the dual edges not crossing the primal tree are enough to connect all dual vertices, meaning all faces of the primal embedding. Let $T \subset E$ be a spanning tree of $G$. Let $V(G^\dagger)$ denote the vertex set of the dual graph $G^\dagger$, and let $S^2$ denote the sphere in which $G$ is embedded. Let $H^\dagger$ be the spanning subgraph of $G^\dagger$ whose vertex set is $V(G^\dagger)$ and whose edge set is $E^\dagger \setminus T^\dagger$.
Assume for contradiction that $H^\dagger$ is disconnected. Then its dual vertices can be separated into two nonempty classes, say $X$ and $V(G^\dagger) \setminus X$, with no edge of $H^\dagger$ crossing between the two classes. A vertex of $G^\dagger$ is a face of the embedded graph $G$, so define $R_X \subset S^2$ to be the union of the closed faces of $G$ corresponding to the vertices in $X$. Since $X$ is neither empty nor all of $V(G^\dagger)$, the region $R_X$ has a nonempty boundary made from primal edges.
Now take a primal edge $e$ lying on this boundary. Its dual edge $e^\dagger$ has one endpoint corresponding to a face in $X$ and the other endpoint corresponding to a face outside $X$. Since no edge of $H^\dagger$ crosses from $X$ to its complement, this dual edge cannot lie in $E^\dagger \setminus T^\dagger$. Hence $e^\dagger \in T^\dagger$, so $e \in T$.
Thus every primal edge on the boundary of $R_X$ lies in the tree $T$. Define $C_X \subset E$ to be the set of primal edges whose dual edges cross from $X$ to $V(G^\dagger) \setminus X$. We have proved $C_X \subset T$, and $C_X$ is nonempty because $R_X$ has nonempty boundary made from primal edges.
It remains to justify, rather than merely quote, the planar cut-cycle principle. Why should $C_X$ contain a cycle? The key point is a parity condition at every primal vertex. Fix a vertex $p$ of $G$, and choose a sufficiently small circle around $p$ meeting each incident edge-end exactly once and no other part of the embedded graph. The arcs between consecutive intersection points lie in faces of $G$. Label each such arc by whether its face belongs to $X$ or to $V(G^\dagger) \setminus X$.
An incident edge-end is counted by $C_X$ exactly when the two adjacent face-arcs have different labels, because its dual edge then has one endpoint in $X$ and the other endpoint outside $X$. As one goes around the small circle and returns to the starting arc, the number of changes between the two labels is even. Therefore the degree of $p$ in the subgraph with edge set $C_X$ is even. This remains correct for a loop, because a loop contributes two incident edge-ends at its vertex.
We have obtained a finite nonempty graph, namely the subgraph of $G$ with edge set $C_X$, in which every vertex has even degree. Starting from any edge and continuing through unused incident edges is possible until returning to a previously visited vertex; the resulting closed trail contains a graph-theoretic cycle. In particular, a loop is allowed as a one-edge cycle, and two parallel edges are allowed to form a two-edge cycle. Hence $C_X$ contains a cycle of $G$.
Since $C_X \subset T$, this cycle is contained in $T$, contradicting the defining property of a tree. Therefore the assumption was false, and $H^\dagger$ is connected.
[/guided]
[/step]
[step:Count edges to conclude the complementary dual subgraph is a spanning tree]
Let $v$, $e$, and $f$ denote the numbers of vertices, edges, and faces of the embedded connected graph $G$. The Euler characteristic formula for a connected finite graph embedded in the sphere gives $v-e+f=2$. The dual graph $G^\dagger$ has $f$ vertices and $e$ edges, because its vertices are the faces of $G$ and its edges are in bijection with the edges of $G$.
Because $T$ is a spanning tree of $G$, it has $v-1$ edges. Hence the spanning subgraph $H^\dagger$ has edge set $E^\dagger \setminus T^\dagger$ of cardinality
\begin{align*}
|E^\dagger \setminus T^\dagger|=e-(v-1)=e-v+1=f-1.
\end{align*}
The preceding step proves that $H^\dagger$ is connected. A connected graph on $f$ vertices with $f-1$ edges is a tree, so $E^\dagger \setminus T^\dagger$ is a spanning tree of $G^\dagger$.
[/step]
[step:Reverse the argument by applying the same reasoning to the dual embedding]
The plane dual of $G^\dagger$ is naturally identified with $G$ under the same edge correspondence. The dual graph $G^\dagger$ is connected: for any two faces of the connected spherical embedding of $G$, an arc in $S^2$ joining interior points of the two faces and meeting the embedded graph transversely in finitely many edge interiors determines a walk in $G^\dagger$ by recording the faces crossed in order. Therefore $G^\dagger$ satisfies the connectedness hypothesis used in the two preceding steps. Applying those steps to the connected embedded graph $G^\dagger$ shows that if $S^\dagger \subset E^\dagger$ is a spanning tree of $G^\dagger$, then $E \setminus \varphi^{-1}(S^\dagger)$ is a spanning tree of $G$.
Now let $T \subset E$. If $E^\dagger \setminus T^\dagger$ is a spanning tree of $G^\dagger$, apply the previous paragraph to $S^\dagger=E^\dagger \setminus T^\dagger$. We obtain that $E \setminus \varphi^{-1}(S^\dagger)=T$ is a spanning tree of $G$. Together with the forward implication, this proves
\begin{align*}
T \text{ is a spanning tree of } G \iff E^\dagger \setminus T^\dagger \text{ is a spanning tree of } G^\dagger.
\end{align*}
[/step]
[step:Conclude that the edge bijection identifies the bases]
The spanning-tree equivalence proves that, for every basis $T$ of $M(G)$, the set $E^\dagger \setminus T^\dagger$ is a basis of $M(G^\dagger)$, and every basis of $M(G^\dagger)$ arises in this way. Under the bijection $\varphi:E \to E^\dagger$, this is exactly the statement that the bases of $M(G^\dagger)$ correspond to the complements of the bases of $M(G)$.
By the definition of the dual matroid, those complements are the bases of $M(G)^*$. Since a matroid is determined by its ground set and its bases, $\varphi$ induces a matroid isomorphism $M(G)^* \cong M(G^\dagger)$. Equivalently, under the identification $e \leftrightarrow e^\dagger$, we have $M(G^\dagger)\cong M(G)^*$. This proves the theorem.
[/step]