Splitting this off from #3152, where I noticed it
Although we don't currently implement filter for lazy expressions, that's just an implementation detail, and it should be possible to support filter if the expression results in a scalar-like value
For example:
nw.col('a').filter(nw.col('b')>1).sum() should be valid lazy + eager
nw.col('a').filter(nw.col('b')>1) should be eager-only