@Robert Hijmans' answer fully addresses my question about using sf_use_s2() while cropping data. I'm adding an additional answer because I discovered that the whole problem can be avoided when using rnaturalearth with terra by importing the map object as a SpatVector rather than as an sf, and cropping using terra.
world <- ne_countries(scale = "small", returnclass = "sv")
europe <- terra::crop(world, ext(-20, 45, 30, 73))