Share intermediate results in nlz

This fixes a long-standing issue in our uplink case study where the compiler didn't terminate unless we awkwardly introduced explicit sharing in the pipeline. Now it works as it should.