Messed around a bit more. The shaders look fine when I re-seed the random number generators, generating new shapes within the same parameters. Having pattern functions that used absolute measurements instead of percentages would be quite a bit more useful, though. For everything, in fact; it's a nasty mess trying to scale something as simple as bricks to match objects of different dimensions.
Above is a new thing I dashed off, using the same basic functions as before.