Limited expression use can be better than using a big, complicated node network for things that aren't easy to represent with existing nodes. They can be a pain to edit, since the expression editor UI is an antique (it would be so much nicer if you could just select an expression node and edit the expression in the AE). They're not that slow, but I think they'll only evaluate in the main thread, so they won't parallelize with the rest of the rig. You'll want to check their impact on performance with the profiler, but you need to do that for anything.
The biggest limitation of expressions is that they don't work with shading networks, like mspeer's banded texture example above.
FYI, I threw this in the ideas forum, for a place to put things like a rounding integer attribute: https://forums.autodesk.com/t5/maya-ideas/add-a-simple-empty-dg-node-type-for-storing-data/idi-p/892... I've wanted something like that several times too. zMayaTools has zNode, but even I don't really use it, since I don't want to make things depend on external nodes (even my own) unnecessarily...