Yes - the add-on works with Eevee, Cycles and Blender Internal
Not currently, no - although I'm looking to extend it to work for the compositor. However, in the compositor there is much less of a need for complicated mathematical node trees so this wasn't such a priority. However, if there is demand for this in the compositor let me know and I can look into supporting this.
There are a number of incompatible differences between Blender 2.8 and earlier versions. The add-on is provided in two versions - one for Blender 2.8 and one for Blender versions 2.7x - simply choose the version appropriate to your version of Blender.
Effectively, no - only the natural limits of the Blender node editor. For a complicated example of what can be achieved, see the Fish Scale example in the documentation section.
Yes - see https://baldingwizard.wixsite.com/blog/node-expressions for more information and tutorials.
The add-on is always evolving and being improved and each change is flagged with a "version number", visible in the filename of the installation file and add-on properties page in the Blender Preferences Add-ons page. The major differences and improvements are listed here :
Make compatible with Blender version 2.83 (in particular, the new '4D' capabilities of the texture nodes (Noise, Musgrave, etc.)).
Make compatible with Blender version 2.82 (some of the new Maths nodes functionality had broken the building of the expression).
Add info popup for contact/feedback/acknowledgement.
Drastically improve performance when adding a new node, implement 'image(...)' for Image Texture node, implement 'mix(fac, c1, c2)', improve changing types of output sockets (eg, when changing from 'Output' to 'Output'), improve options in some presets (eg, Hexagons).
Implement 'include "TEXT:....' functionality to allow text to be imported from separate text blocks. This allows, for example, functions to be defined in a separate block and then used in your expression as a library.
Implement 'inputs(...)' and 'outputs(...)' which specify which variables should be visible outside of the new group node - provided as an alternative to having to prefix 'internal' variables with '_'. Implement point(...) for Point Density function. Implement constants as "pi" and "e" quoted strings.
Minor fixes to 'mix4' and 'hexagon' presets. Revamp processing of 'hidden' variables to avoid causing conflicts while simultaneously previewing/rendering - as part of this the node tree now contains labelled Reroute nodes for intermediate sub-expressions. Enhance node layout to improve with variable sized nodes. Amended documentation to fix typos in 'Special Variable' sections. Disable nodes for all materials while updating group to avoid conflicts with previewing/rendering to improve stability. Significant performance increase for laying out the nodes of very large node groups.
Improved handling of small groups and value nodes.
Added extended modes to 'voronoi' function (crackle, closest1, closest2, etc.) for Blender 2.8. Improve placing of newly added node by allowing it to be placed with the mouse.
Improved 'undo' support and added 'colorramp(...)' function. Fix problem with negative 'default' values.
Added 'musgrave(...)' and 'voronoi(...)' functions and sub-functions and allow sub-groups to be defined and used (see new Mandelbulb preset). Also added new presets for Normal Distribution, Blend and Spirals (2d and 3d).
Tidy up opening of documentation window and grouping (group nodes now named based on sub-expression) and optimise tree by merging Value nodes into connected sockets.
Optimise generated groups, fix bug in grouping
Create a separate group per sub-expression to improve readability and efficiency.
Added vmult and vdiv functions and refine selection of active node tree
Added additional functions (noise, clamp/clip, vadd, vsub, vdot, vcross, vnorm, fract, ceil, floor)
Fix bug in expressions for negative values (eg, "x/-y"), support 'special' input variables ('Input.XXX', etc.), fix bug in using Shift+A shortcut
Add checking to presets build and fix problems with operator precedence
Allow presets to include "options" where the user can decide which features to enable/disable
Allow 'presets' to be imported directly into a text block for viewing/editing
Refine checks to enable operators only if valid node tree
Implement vector combine and split functionality
Bug fixes, optimize generated node tree, allow expression to be sourced from text block
You can specify that an input is specifically a *vector* by adding a suffix of ''. For example, to set an output as a vector you could use 'MyVector = combine(x,y,z)'. You use the same method to indicate that an input is a vector (eg, 'DotProduct = vdot(InputVector, Input.Normal)') or you can reference a specific 'channel' of a vector using '[x]', '[y]', '[z]' (although you can also use '[r]', '[g]', '[b]' or '', '', '' for convenience).