I assume this is due to the principle of uniform access: in REPL val this is an object field, not a local variable. And all non private[this] tags are getter methods.
So your code looks something like this:
def fn() = (x:Int) => x+1 val fn1 = fn _ // () => fn()
It works as expected with local variables:
scala> { | val fn = (x:Int) => x+1 | val fn1 = fn _ | } <console>:10: error: _ must follow method; cannot follow Int => Int val fn1 = fn _ ^
Although I can explain why it works this way, I still think that this behavior can be considered a mistake.
source share