Yep, I'm not sure of the reason for that. Atm I don't have much control over where the palette change happens, it's a low res timer (100 Hz) so I only get 1 point slightly above the middle where i can make the change and that will probably get a bit wobbly if there's any other interrupts occurring, I have seen the suggestion of using the flashing colours and using the event to switch between displaying the mark/space colours so they all change at the same point. I've not tried switching modes yet and I suspect there's going to be more to it than the palette changes.
Another trick used though was in Firetrack, normally the hardware only allows vertical scrolling 8 lines at a time which isn't too smooth, all the graphics modes have the same vertical res but the text modes have 2 pixel gaps between each character row so they had it set to text mode at the top of the screen and somehow controlled how far down the screen it switched to graphics mode so the number of 2 pixel gaps could give 2 pixel vertical scrolling.
I've seen that the BBC has higher res timers than 100Hz but I'm not sure if there's some equivelent on the electron, maybe the firetrack thing was just done by counting clock cycles of the code rather than using interrupts.