Os níveis alfa do ggplot parecem diferentes no preenchimento e na borda dos pontos (artefato tocando)

Estou plotando muitos pontos usando ggplot com um valor de transparência constante para todos os pontos.

O que eu acho é que os pontos circulares têm um preenchimento mais transparente do que sua borda individual, de modo que as bordas são visivelmente mais brilhantes que o preenchimento (estou plotando círculos claros em um fundo escuro), ou seja, parece haver um artefato tocando.

O efeito é que eles parecem anéis em vez de círculos semi-transparentes.

library(ggplot2)
set.seed(123)
data <- data.frame( x = sample(1:100,2000, replace=T), 
                    y = sample(1:100,2000, replace=T) )
ggplot(data, aes(x,y)) + 
  geom_point(alpha=0.2, color="dodgerblue", fill="dodgerblue", size=4) +
  theme(panel.background = element_rect(fill = 'black', colour = 'black'))

Não sei ao certo por que isso é feito; portanto, informações sobre por que isso ocorre seriam ótimas.

As soluções possíveis seriam tornar a borda e preencher a mesma transparência, ou tornar a borda 100% transparente (definir a borda para dizer a cor do plano de fundo prejudicaria o visual quando os pontos se sobrepusessem). Não tenho certeza de como fazer um desses.

* Edições adicionadas após as discussões abaixo *

O problema aparece ao exibir a plotagem no visualizador do RStudio ou em um PNG salvo. Ele não aparece ao visualizar um PDF salvo. No entanto, meu conjunto de dados real é grande e os gráficos vetoriais são ineficientes para plotar um grande número de pontos, então eu adoraria uma solução alternativa!

questionAnswers(3)

yourAnswerToTheQuestion