How do I know the fundamental group of an infinite graph is well defined? I get that given a choice of spanning tree and base point for a (connected) graph, I can effectively change the base point through path conjugation, so there's no problem there. For finite graphs, the choice of tree is irrelevant because the number of edges not in our spanning tree will be invariant under the choice of tree. But if my graph is infinite (and the AoC is assumed), how do I know I can't pick two different trees for which the sets of left over edges have different cardinalities, and therefore end up with free groups of different rank?
 A: The definition of the fundamental group does not depend on any choice of a spanning tree.  A spanning tree is just used to get an explicit description of a group that the fundamental group is isomorphic to.  So it would be no problem if it turned out you could get free groups of different rank by choosing different spanning trees--this would just be a proof that those free groups are isomorphic to each other (since they are both isomorphic to the fundamental group of your space)!
But in fact, you can prove that free groups of different rank are not isomorphic, so this will never happen.  Indeed, let $F$ be a free group on a set $S$, and let $A$ be the quotient of $F$ by the normal subgroup generated by all commutators in $F$ and all elements of the form $x^2$ for $x\in F$.  Then $A$ is an abelian group in which every nonzero element has order $2$ which is generated as freely as possible by $S$, which just means that $A$ is an $\mathbb{F}_2$-vector space with basis $S$.  This means that $|A|=2^{|S|}$ if $S$ is finite, and $|A|=|S|$ if $S$ is infinite.  Either way, the cardinality of $A$ uniquely determines the cardinality of $S$.  Since $A$ only depends on the group $F$ up to isomorphism, this means that the cardinality of $S$ is uniquely determined by $F$, considered as a group up to isomorphism.
