expr: binop propagates names when they're the same

Fixes #871