Maybe I am using this function incorrectly, but on Windows and Linux, it
subtracts the taskbar size, but not a window titlebar size. Is this
intentional, or should we use that function and SDL_GetWindowBordersSize,
then subtract the title bar sizes of the latter from the former?
The observed behavior you describe matches well with the documentation (https://wiki.libsdl.org/SDL_GetDisplayUsableBounds). I’m quite sure SDL works as intended here. You can think of it this way: SDL_GetDisplayUsableBounds gives you the area that a maximized borderless (but not fullscreen) window would give you.
It works as documented, but maybe we need pass window flags in, or add a function to get the size of window decorations?
Feel free to submit a bug to bugzilla.libsdl.org.