Isn't it more or less the issue of dialogue tree? Maybe when you use a disguise, you flag the conversation for Shadowheart as if you're not a Gith, so the game assume you are of a different race. Gith can recruit Shadowheart just fine. It's just a lot tougher and dice roll may be required. If the conversation got passed the check where Shadowheart sees you as a Gith then it will treat the character as a non-Gith pass that point.