Cache (currently not available in 2018)
This node basically passes through the inputs to the matching output. However, if a value is requested from the output for a second time at the current spot (and recursion level) the last value will be returned.
This caches the value and prevents duplicate evaluations of the value connected to the input. This node can be used for all computationally heavy nodes (such as material and shaders) if multiple inputs are connected to their output.
We host a nice sample scene for you to download and dissect that shows a speed increase of almost 500% when rendering a complex nodal surface.
Many thanks to Mariusz 'pYo' Skrzypczynski for making this scene available.