Actually, I'm pretty sure there's no compelling legal reason for the TSA to do this. If what the TSA says is admissible in a later trial (which it likely would be[1]), it will be admissible whether or not Schneier is present at this hearing. The legal angle would explain why Schneier wouldn't want to testify, but he's apparently game.
Coming from the TSA, it amounts to "we are afraid to face questions from someone who will know enough to ask hard questions." Which I agree is unsurprising, but it's not exactly a compelling defense of their position.
[1] Under, for example, Rule 801(d)(1)(A): http://www.law.cornell.edu/rules/fre/rule_801