Not a bad idea. I think bvars are destroyed automatically to help mIRC manage memory, and also to avoid shadowing issues with global and local binvar namespace.. Though the memory thing would not be much different from storing binary in hash tables, so there's no reason not to have the same behaviour built into binvars.

Getting back to hash tables though.. the following is a pretty simple solution:

set: /hadd -mb bvarStore &bvarName &bvarName
get: $hget(bvarStore, &bvarName, &bvarName)

Code:
alias bsave { hadd -mb bvarStore $1 $1 }
alias bload { noop $hget(bvarStore, $1, $1) }

alias testcase {
  ; set
  bset -t &hello 1 hello world
  bsave &hello
}

alias testcase2 {
  ; get
  bload &hello
  echo -a $bvar(&hello, 1-).text
}