Properly speaking, Euler's formula does not apply to a surface, but
to a network on a surface, which must meet certain criteria. The
"natural" faces and edges for these surfaces, or those determined by
applying the definitions used for polyhedra, do not meet these
criteria.
Just taking the natural parts of a cone, as you say, it has one
presumed vertex, the apex; one edge, the circle at the base; and two
faces, one flat and one curved. (I say "presumed" because the apex is
not really a vertex in the usual sense of a place where two or more
edges meet, but it is a point that stands out.) This gives
1 - 1 + 2 = 2
So it does fit the formula; but there is no reason it should, really,
because it doesn't fit the requirements for the theorem, namely that
the graph should be equivalent to a polyhedron. Each face must be
simply connected (able to shrink to a disk, with no "holes" in it),
and likewise each edge must be like a segment (not a circle). One of
our "natural" faces has a "vertex" in the middle of it, so it is not
simply connected; and the "edge" has no ends, so it doesn't fit
either. These errors just happen to cancel one another out.
As another example, take a cylinder, which in its natural state has
no vertices, two "edges", and three "faces":
0 - 2 + 3 = 1
It doesn't work, and the theorem doesn't claim it should.
In each case you can "fix" the graph by adding one segment from top
to bottom. In the cone, this gives one extra vertex (on the base),
and one extra edge, so the formula still holds. In the cylinder, it
gives two new vertices and one extra edge, and the formula becomes
correct.