Is there any reason to use UMG for a pure C++ UI implementation instead of using Slate directly?

No. UMG adds a ton of unnecessary overhead just for the sake of having a WYSIWYG editor.
If you can, relatively fast, write Slate UIs in C++ then there’s pretty much zero reasons to go and use UMG.

Do I understand correctly that UMG is just a Blueprint-focused wrapper over Slate, and it may be easier to go with straight Slate if I am much more comfortable using C++ than Blueprints?

The only reason to use UMG instead of slate is that UMG allows in editor Edit.
If you can use slate - then it would be a better choice performance wise.
Also UMG is limited and very annoying :slight_smile: