The Slice filter has several Slice Types (Plane, Box, Sphere, Cylinder), but not the types you mention. A cone and perhaps frustum function could be added without too much trouble. Surface of revolution may not quite fit in the Slice filter framework.
As a workaround, you can resample datasets onto arbitrary surfaces using the Resample With Dataset filter. First, you’ll need to create the cone, frustum, or revolution surface. The cone can be created with the Cone source in the sources menu. Place the cone by altering the cone parameters. Second, create the Resample With Dataset filter. When you create it, you will have to set its two inputs. “Source Data Arrays” is the dataset that should be resampled onto the cone, and “Destination Mesh” should be the cone.
Indeed, you have identified some problems with sampling on a cone that is coarsely tessellated from the apex to the base. There are some subdivision filters in ParaView to refine the coarseness, but they don’t provide an even refinement from apex to base. A tessellation property would need be added to support this.
I’m not sure if anyone has brought this up in this thread, but the Slice filter works (in principle) by creating a point field that is negative on one side of the slicing surface, positive on the other side, and 0 on the slicing surface itself. It then uses a Contour to do the actual slice. So, if you can describe such a field using the Calculator (or some other similar filter), you could then create the slice. You would not have the nice 3D widget for the built-in slice surfaces, but it could be a quick fix.