it’s buggy behavior (imo) that’s particular to situations being shown in your model.
WireCut can work here sometimes but that split just won’t work.
a quick (soundless) video showing various attempts at a WireCut… if i set the depth higher than the ring to cut, it fails… if i set the depth (via snapping) to the exact height of the ring, it succeeds… if i cut only a portion of the ring, it succeeds… cutting downward/below succeeds… then i draw a rectangle instead of your curve and it always succeeds where your curve doesn’t.
then Split… at first, i call
_Intersect on the two objects and you can see the entirety of the intersection hasn’t been found… there are portions missing… this intersection curve is what
Split will use to split along but since it’s an incomplete intersection, the command fails.
if you move the splitting surface a little bit forward or back,
Split then works.
when the two surfaces kiss(?) each other in the way yours have (portions of the surface perfectly overlapping the other), the intersection can fail… this will show up in the boolean commands as well.