Hi Breakmachine,
NGUI attempts to combine all widgets and textures into as few draw calls as possible by combining all the geometry into a single mesh and all the different textures into a minimal amount of materials.
The creation of the combined geometry is a script intensive step and needs to be repeated each time any of the geometry within a panel changes, i.e.: you rotate, scale or move a widget inside a panel. A UIPanel has a static flag that you can use to indicate that the geometry inside the UIPanel is not expected to change which lets the panel use cached values.
This, of course, does not work when the geometry inside the panel DOES change - if the panel is static you will see no change as the moved geometry is not integrated into the combined mesh. Therefore the advice is to split up your static and non-static geometry and assign them to either a static or non-static panel. Another thing you can do is to toggle the static flag off only while you're changing the geometry inside the panel. We have noticed massive performance changes by using the static flag properly.
Do note that you are free to move / scale / rotate the panel itself while it is static - just not the contents.
Hope that helps!