Except he almost never showed up, and when he did he didn't do much of anything. He spent more time speaking to the party than he did doing anything evil. It wasn't subtle, it was laxed. A good villain is not just an arbitrary final boss that the heroes journey towards - that's a MacGuffin, and that's what Sephiroth is, a pointless MacGuffin that doesn't really appear but is just there to give the heroes a goal to work towards. The villain shouldn't have to be explained by the other characters as evil, their evilness should be present for us to see for ourselves.
A good villain should be present for the party to act against, to provide conflict and tension. Good villains appear and do things to antagonize the heroes and establish their position as villain. Sephiroth doesn't do anything, he appears to do anything of significance only four times throughout the game - Nibelheim, Temple of the Ancients, Aerith's death, Northern Crater sequence. This is not how a good villain should operate, a villain should appear more than half a dozen times.
If you only see the villain a handful of times and they don't do anything really villainous in those times, how can we be expected to take them seriously as a villain? If you expect me to believe a villain is evil, don't explain their evil to me, show it to me with evil acts and evil deeds. If you just sit around and don't do anything with your role as a villain, then you're a lousy villain. See also - Zemus, Ultimecia, Vayne, Dark King, Necron, and countless others in other games.
Good villains are there for the party to act against, to do things the player to show they are the villain. A good villain is not just a distant schemer, they act as a source of conflict to the party and antagonize the heroes directly. See also - Kefka, Golbez, Kuja, Shinra, Dr. Cid, Seifer and Edea. Hell, they sucked but even Seymour and Exdeath were better villains than Sephiroth. Why? Because they actually *did* something with their role.
When the party has to call a time-out every other town to recap why they're fighting the villain and remind the player what his goal is and why he's evil, the villain isn't doing his job right. Up until the Temple of the Ancients, Sephiroth wasn't shown to be *planning* to do anything evil, up until that point the party was like "we're gonna stop Sephiroth. We don't know what he's planning, and he hasn't done anything yet, but when he tries, we'll be ready for him". It's pretty sad when even the party has to admit they're not quite sure why they're fighting the villain.