It seems that you cannot use additional aesthetics with geom_hline if you leave yintercept outside of the aes call, unlike say y in geom_line.
df <- data.frame(
"x"=rep(c(1,2,3),2),
"y"=rep(c(1,2,3),2),
"g"=rep(c(TRUE,FALSE),each=3)
)
This does not work contrary to what you would expect from things like: geom_line(y=1,aes(colour=x))
ggplot(df,aes(x=x,y=y)) +
geom_point() +
geom_hline(yintercept = 1.5,aes(colour=g)) +
facet_wrap(~g)

This does work but seems counter intuitive. Especially if you wanted, for example, 2 hlines one with a fixed yintercept and one that varied when it would seem more natural to leave the fixed intercept outside of the aesthetic and the variable one in.
ggplot(df,aes(x=x,y=y)) +
geom_point() +
geom_hline(aes(yintercept = 1.5, colour=g)) +
facet_wrap(~g)
