What are the - oh, let's say - five most CPU-demanding features of C3?
It's impossible to answer that question because it depends entirely on what your project does.
For example 'For each' will be fast if it runs through 5 instances, and slow if it runs through 100,000 instances.
Ordinary conditions already check every instance to pick the ones that meet the condition. So 'For each' with 5 instances could easily be faster than a simple standard 'Is visible' condition that has to check 100,000 instances.
Some important points about performance are already documented in the Performance Tips manual entry, but those tend to be things beginners do because they don't understand how much work things take. The key is regular testing to catch anything particularly slow that was accidentally introduced, and guiding your changes solely by actual measurements.