It seems like the vertical centering is not working as expected when there is a large empty space between entries. You can try using a larger font with the same legend box size, or a smaller box with the same font size, so that the text fills more of the vertical space; in both cases it looks better centered.
where y0=0.62 for three entries and y0=0.6 for four entries. Probably there is still some misalignment, but too small to be testing values (you need to focus to notice).
I do not think so because it really depends on the legend geometry. When the text size is not automatic it may occur that a correct alignment is not possible depending on the box size.