But I'm curious as to why RevolutionPlot3D produces an upside down cone ...
This is because yFuncts
is interpreted as a single two dimensional function, i.e. when it it plotted as such, it gives a straight line:
yFuncts = z /. OblateSpheroidProfile[r0, r];
ParametricPlot[yFuncts, {r, 0, r0}]
This line is then rotated around the z-axis. Have a look at the examples in the documentation on RevolutionPlot3D
.