Thank you for this. Yes, it does work well. However, my comment still holds -- although I now realize it wasn't clear enough.
The issue with this solution is that the text or label needs to be grouped with the object or objects it's going to partially hide. This goes against most map creation workflows though. When producing maps, as you surely know, it's indeed a very good idea to keep similar elements together. So, all roads are put together, and all coast lines are grouped with other similar coast lines. The same is done with text labels, and other elements. This lets one change the appearance of all of those elements at once, easily and quickly. The work is thus more consistent and the chances of making mistakes is vastly reduced.
The workaround suggested above forces map creators to do away with this long established workflow, as it forces them to isolate certain labels and group them with the objects they need to partially cover. It's fine for one or two labels, sort of, but it becomes a real issue when one has to deal with tens of labels, all having to be grouped with other elements of the map, like, parts of a coast line, or a river, or a road, or a building and a road, etc. The project's organization takes a real beating, which makes mistakes more likely.
It would be better to achieve the effect seen above *without* having to group the text with the object(s) it's hiding.