"As simple as can be"? The object in your scene is called "Cube", but does not look like a simple cube ;) Anyway, the Boolean modifier has always been a bit buggy, since the introduction of the Fast and Exact solvers, by using one or the other you now have more chances to get the desired result than before.
For example, what you call an "error" in the screenshot is actually how it is supposed to be. The Fast solver would only make a cut in the middle of your object (because the plane is non-manifold), while the Exact solver tries to calculate a result by treating the plane as if it were manifold, using the face orientation to decide what is "outside" and "inside" of the plane and then deleting the part of the object which is "inside".
So I do not think what you describe there was intended behavior in earlier versions, it was just the not quite flawless way of working before. For example, you mention the Self Intersection option - in your example there is no self intersection visible. Its purpose has nothing to do with what you are describing as your issue.
This is what it's good for, here I have an object where there is an intersection, there's a part going through it from top to bottom:
Now I take a second object and place it inside the first object to cut out a section in the center (which I will later make invisible to see the cutting result):
Using a Boolean modifier set to Difference and Fast I get the following result: the Fast solver cannot really handle overlapping geometry, so it makes a hole in the main cube and only cuts the inner part correctly (with correctly I mean the normal result with simple geometry: the cut area is closed).
But this is - as the name says - the fast option which is not always very accurate. So to get a better result you could switch to Exact. However, when Self Intersection is disabled although you have self-intersecting geometry, the Exact solver does not always the best job - in this case, the complete object disappears:
After enabling Self Intersection, the object will be treated as a solid object where the geometry is intersecting and therefore the modifier will cut out the second object completely with closing the cut-out area: