First of all, thanks for the help people. Now here's what I've come up with so far:
The fuel pump does work. I haven't checked flow or pressure, per se, but when I crank the starter, it pumps plenty of fuel out of the hose. A new fuel filter will be added for good measure ($12). The air filter is unrestricted.
Yesterday I pulled the carbs and cleaned them out very well. All four butterfly's were in alignment. Diaphragms and springs were intact. Vacuum lines looked in decent shape. There was some gunk in the float bowls, but nothing jaw-dropping. A few jets were slightly restricted, but still not too bad. One of the main jets had only half of a rubber o-ring on the seat! Can't explain that one... except maybe my brother and his friend lost it last year when THEY "cleaned" the carbs.
Since the bike is pretty easy to work on, I put it all back together just to see how it went. Better, but still not right. The RPMs will go all the way to redline now, but slowly. It idles nicely, and RPM's go right up to 5k, but anything above that requires full throttle.
So that's when I called my brother to get some more information about this problem. He said that last year the bike was running fine, and then one day it just started bogging down out of nowhere.
The bike has coil-on-plug ignition. So I'm starting to think that MAYBE one of the coils went bad. New coils cost $95 each. I'd like to bench test the coils, but I'm not sure what the best way is.