Yeah it is because you PowerShell’s pipeline accepts input from stream 1 whereas verbose output is on stream 4. To get it through the pipe you have to redirect it to 1.
Basically, because the pipeline input is for a [System.String] object, the piped [VerboseRecord] object’s ToString() method is implicitly invoked upon passing it through, just as it would be when you’re passing it through to Out-String.