Why wouldn't that be an opportunity for optimization? At the very least, feature X that only works with feature Y is dead code when feature Y is not present. Even if you only enable feature X when the user chooses to enable feature Y, you have some opportunities for whole program optimization across the code boundaries of X and Y.