Hello,
It's not very clear what is the purpose of TopAssembly & BottomAssembly layers. These happen to be just extra documentation layers. The "TopAssembly"-layer doesn't seem to be related in any way to components on top. The same holds for "BottomAssembly" and components on bottom. These two layers might as well have been called "DocumentationX" & "DocumentionY".
More relevant behavior would be that these layers would be related to the components, just like"TopSilkLayer" & "BottomSilkLayer" are. e.g. When "TopSilk"-primitives are added in the PCB-footprint of a component (PCB Libs), swapping the component from top to bottom on a PCB, transforms pads on "topLayer" to pads on "bottomLayer", "TopSilkLayer" primitives to "BotSilkLayer" primitives. Also the reference designator swaps from "TopSilkLayer" to "BottomSilkLayer" and text will become mirrored. This is expected behavior.
When "TopAssembly" primitives are added to PCB Libs, moving such a component to the other side of the PCB, nothing happens with "TopAssembly" primitives. They remain in "TopAssembly", although that component could now well be on bottom side of the PCB. They behave like the documentation layer, which is not related to top or bottom.
I expect that "TopAssembly" and "BottomAssembly" would behave like "TopSilkLayer" & "BottomSilkLayer".
The use case is that people sometimes want to add primitives to components that should be visible on the assembly drawing (for which TopAssembly & BottomAssembly could then be used). But they don't want those primitives be visible on the silkscreen.
An example of such usage can be found [here](https://easyeda.com/LieBtrau/nijntje-thermo-hum). The outline and polarity marking of the LED and switch should be visible on the assembly drawing, but not on the silkscreen of the PCB.
Regards,
Christoph
Chrome
67.0.3396.99
Linux
EasyEDA
5.5.15