Por que a legenda ggplot2 não combina valores de preenchimento e escala manuais?

Comportamento esperado

Se eu criar uma plotagem com ggplot2 e usar escalas separadas, digamos, de forma e preenchimento para delinear dados, eu esperaria que a legenda delineasse entre pontos preenchidos "brancos" (que parecem ocos) e pontos preenchidos "pretos" (que não parecem oco).

No código de exemplo abaixo, o item de legenda do Windows deve ser um ponto oco branco e, para o Linux, deve ser um ponto preenchido preto

Comportamento Real

Os itens da legenda em "Sistema operacional" descrevem dois pontos visualmente idênticos para sistemas operacionais claramente diferentes cujos pontos são claramente desenhados com preenchimentos diferentes no gráfico. No código de exemplo abaixo, tanto o Windows quanto o Linux aparecem como pontos ocos negros indistinguíveis na legenda, mesmo que eles estejam apropriadamente plotados de maneira diferente no próprio enredo.

Amostra de Lote

Gráfico de amostra com comportamento de preenchimento interrompido na legenda http://f.cl.ly/items/2w2i09103Q2p0i3M1Y2d/BrokenFillRplot.png

Código de amostra
library(ggplot2)

x <- rnorm(n = 30)
y <- rnorm(n = 30)
treatment <- rep(c("red", "green", "blue"), times = 20)
operatingSystem <- rep(c("Windows", "Linux"), times = 30)

dd <- data.frame(x, y, treatment, operatingSystem)

fillScaleValues <- c(
  "Windows" = "white",
  "Linux" = "black"
)

shapeScaleValues <- c(
  "red" = 21,
  "green" = 22,
  "blue" = 23
)

p <- ggplot(
      aes(x = x, 
          y = y,
          shape = factor(treatment),
          fill = factor(operatingSystem)
      ), data = dd
     )

p <- p + geom_point()
p <- p + scale_fill_manual(values = fillScaleValues, name = "Operating System")
p <- p + scale_shape_manual(values = shapeScaleValues, name = "Treatment")

p
Informações da Sessão
R version 2.15.1 (2012-06-22)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] C/en_US.UTF-8/C/C/C/C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] ggplot2_0.9.2.1       reshape2_1.2.1        plyr_1.7.1            ProjectTemplate_0.4-2
[5] testthat_0.7         

loaded via a namespace (and not attached):
 [1] MASS_7.3-21        RColorBrewer_1.0-5 colorspace_1.1-1   dichromat_1.2-4   
 [5] digest_0.5.2       evaluate_0.4.2     grid_2.15.1        gtable_0.1.1      
 [9] labeling_0.1       memoise_0.1        munsell_0.4        proto_0.3-9.2     
[13] scales_0.2.2       stringr_0.6.1      tools_2.15.1      

questionAnswers(1)

yourAnswerToTheQuestion