the problem is that if you put expressions in your shading networks you may discover that it won't render at all because it's simply too heavy, or that it's too slow to test.
You've got plenty of tools to work with in the utility nodes and I'm pretty sure you can get an excellent start there -- and when that gets you to your limit, start looking into writing a shading node plug-in.
Expressions in render networks: Aaaaaaa!!!
-- Mark