E' molto semplice: lo spostamento è dovuto al fatto che quando il sottomenù viene reso visibile, l'elemento che lo contiene ne assume le dimensioni. Se provi a mettere un border:1px solid red all'elemento[*] te ne accorgi subito.