> Since you seem to like Shapiro's book more than traditional set theory books let me quote from page 144 that the existence of an uncountable set is a theorem of ZFC: "Let C be the statement of Cantor's theorem. It entails that the powerset of the collection of finite ordinals is not countable. Since C is a theorem of first-order ZFC..."

You didn't finish reading the quote. It continues:

> "... Since C is a theorem of first-order ZFC, m ⊨ C, but, as just stated, m is itself countable and so are its elements. This, again, is the so-called Skolem paradox."

That is, he was making an (informal) contradictory statement in order to illustrate the paradox. But there is actually no contradiction (otherwise ZFC would have been proven inconsistent), so we already know the statement of the paradox must have been inaccurate. He then goes on to explain where the inaccuracy was. It turns out that it was mainly in the mistaken, but common, assumption that the "powerset axiom" implies the existence of a powerset:

> [The powerset axiom] is supposed[!] to assert the existence of the set of all subsets of each set. But the variables (like all first-order variables) range over the elements of the model. So the powerset axiom only guarantees the existence of a set of all subsets of (say) ω that are in the model. The subsets of ω that are 'guaranteed by the axioms' to exist in a given model m are those that are first-order m-definable, and only those. In some cases there are only countably many of them.

As I explained in a previous comment, you can't say in first-order logic "every possible combination of elements of this infinite set forms a set" (more precise expression of "all possible subsets exist"). ZFC's powerset axiom only states that all existing subsets are element of some set P, but it doesn't imply they exist in the first place. So it doesn't imply the existence of infinite powersets (finite powersets wouldn't require the axiom anyway). Indeed, only those subsets are implied to exist that are implied by the other axioms, which isn't very many. (See the Löwenheim-Skolem theorem.)

And Cantors theorem only states that inside the model no function f (which would be just another set) exists that maps A to its supposed powerset P, even if both A and P are countable. So there no contradiction between Cantor's theorem and the countability of P in ZFC.

> Also this is not how the metatheory is understood in mathematics, not even in Shapiro's book, who dedicates two whole chapters to the metatheory

See this (well-known) quote on page 254 where he talks about the metatheory of second-order logic:

> The language of set theory is employed, without apology, and no anti-realist interpretation or reduction its envisaged. Indeed, no explicit interpretation is envisaged at all. There is no perspective outside this language from which to discuss its interpretations, or its models, or at least none is contemplated. The set-theoretic universal quantifier reads 'for all sets' and the existential quantifier reads 'there is a set'. Thus sets are in the ontology of the background theory. If asked 'which sets?' or 'how many?', there is only one answer: 'all of them'. This is what it is to take the language literally.

Alternatively, one could already take the axioms of second-order logic as "rock bottom", insofar they are grounded in natural language (which he also offers arguments for). In any case, using other formal theories as a tower of meta- and meta-meta-theories only leads to an infinite regress. Everything bottoms out in natural language. Normal mathematicians don't bother with formal languages in the first place, it's only logicians which make this excursion, but even they resort to natural language on the (meta) meta level.