But the pros can beat lvl 9s easy with no problems at all so it has to be somewhat effective. If it didn't mean anything then they would get the same results as anyone else who knew the basics of the game.
While playing against CPU's can help you get experience handling your character, higher level CPU's do not play like real people and thus can teach players really bad habits. CPU's know your attacks before they even come out, allowing them to dodge and shield you perfectly an absurd amount of the time. Real opponents are limited by human reaction time and attack recognition, so they can often be caught in non-true combos. This goes even for the pros. CPU's perfectly dodge out of combos at any opportunity, discouraging you from using a string that would work 95% of the time on real people.
They also don't really learn from you or adapt, letting you get away with spamming that any real player would punish quickly. The best players can definitely beat level 9's, because they can easily learn the CPU's patterns, and they are amazing at exploiting them. That's the biggest issue with CPU's of any level: they're predictable once you know a few tricks. For instance, you should never attack CPU's in the air; they frame-perfect airdodge 9/10 attacks. They are much more susceptible on the ground, although they react faster than a human with perfect shields a lot too. Because of all of this, grabs are very useful. They don't spotdodge all that much, so even blatant dash grabs are very effective. And because they don't learn how to predict you, you can spam any successful option to your heart's content.
Oh and for glory blows massive donkey ****. There's like a half second input delay that makes it completely useless and not fun at all. For the life of me I can't understand why they couldn't make it lagless like every single fps.
For Glory is a much better option for practice imo. It sounds like you might have a pretty bad internet connection, though, since my online play only lags ever so slightly.
And regarding your FPS comment, there is a very good reason SSB (and fighting games in general) cannot get away with so-called "lag-less" multiplayer. That reason is that it is no online play is lagless. Most FPS games (and racing games, RPG's, etc.) are server-based, which means each player's system is more or less independently running the match, while guessing where your opponents are using updates from a central server communicating with all the players. The game feels lagless to the players since their system is running things locally, but there are all sorts of hiccups that arise out of the fact that your system only knows where your opponent was the last time it got an update from the server, and thus can only approximate their current location and actions. Hence why you often will shoot an opponent dead on only to have them crouch away unharmed. They had already avoided your shot, your system just didn't know it until after you pulled the trigger. Same with racing games. In Mario Kart I've lined up perfect green shell shots only to have my opponent seemingly teleport across the track and avoid my item. In truth, they were never there to begin with, my system just predicted they would be.
In fighting games, you can't have each system guessing at where the opponent is and which attacks will land. All the hitboxes and input timings and such need to line up. SSB has purely P2P (peer-to-peer) multiplayer, where the systems communicate directly and all basically have to agree on where everybody is and what they are doing at all times. Hence the lag.