This answer was inspired in the accepted answer to a similar question.
Use aesthetics stroke
with small values, either zero or close to zero such as 0.1
.
df <- data.frame(x = rep(0, 4), y = rep(0, 4), stroke = (0:3)/4)
ggplot(df) +
geom_point(aes(x, y, stroke = stroke),
shape = 1,
size = 20, colour = 'red') +
facet_wrap(~ stroke)

Edit
Answering the comments below, here is an example of the use of scale_discrete_manual
to change the stroke.
suppressPackageStartupMessages({
library(ggplot2)
library(dplyr)
})
df <- data.frame(x = rep(0, 4), y = rep(0, 4), stroke = (0:3)/4)
f <- factor(df$stroke)
vals <- setNames(c(3, 2, 4, 1), f)
df %>%
mutate(stroke = factor(stroke)) %>%
ggplot() +
geom_point(aes(x, y, stroke = stroke),
shape = 1,
size = 20, colour = 'red') +
scale_discrete_manual(aesthetics = "stroke", values = vals) +
facet_wrap(~ stroke)

Created on 2023-03-08 with reprex v2.0.2