Number of variables, lines or nested levels is just a sign to take more careful look. Should code be changed or not it depends on context. I can spot bad code from 5 meters, it's much harder to tell if code is done right. Some things are complex and require complex algorithms. On another side, if piece of code does not fit in my screen, it probably will be too complex to fit in my brain in first reads.