For "start menu" is defined by lots of .directory files in plasma-workspace
The file to say which desktop files go in which directory is in kservice
It doesn't seem right.
Things happen to work, until you make a change then we get a situation.
For more details see D24423 where someone is making a change and hitting a problem
IMHO kbuildsycoca should find applications.menu dynamically at runtime from the system it seems it would be more cross desktop?