Bug 320347 PartServiceImpl#createPart(MPartDescriptor) is wrong!
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/PartServiceImpl.java
rootContainer.getChildren().add(stack);
			}
		} else {
			if (providedPart != localPart && !descriptor.isAllowMultiple()) {
				return localPart;
			}
			if (isInContainer(providedPart)) {
				return providedPart;
			}
			String category = descriptor.getCategory();
			if (category == null) {
				addToLastContainer(null, providedPart);
			} else {
				List<Object> elements = modelService.findElements(rootContainer, null, null,
						Collections.singletonList(category));
				if (elements.isEmpty()) {
					addToLastContainer(category, providedPart);
				} else {
					Object element = elements.get(0);
					if (element instanceof MPartStack) {
						MPartStack stack = (MPartStack) element;
						if (providedPart.getCurSharedRef() instanceof MPlaceholder) {
							stack.getChildren().add(providedPart.getCurSharedRef());
						} else {
							stack.getChildren().add(providedPart);
						}
					} else if (element instanceof MElementContainer<?>) {
						((MElementContainer<MPart>) element).getChildren().add(providedPart);
					} else {
						addToLastContainer(category, providedPart);