With the react client in particular, due to it's more async nature, we end up with UI "jank" on the front-end when using a custom empty message. The empty message shows up before the data action has finished loading. This is not intuitive behavior for an end-user.
I agree, it looks very jank when a page is loading in. For now you can delay it with some CSS, but that feels like a cheap hack.