Rather than, or possibly in addition to, basing Favored Class on race, why not base it on previous class. It would work something like this.
At first level, you can pick any class as normal. After that, you can advance in your original class, or in a "related" class without penalty. If you...