Would it work to just run a full shell under proxychains? Assuming it can deal with processes started by the shell properly.
You could do with just
$ proxychains bash
and exit the shell at will.
But if you really want to, you can abuse the DEBUG trap (with extdebug set) to mangle the commands the shell runs. This would run every command with time:
$ shopt -s extdebug
$ d() { eval "time $BASH_COMMAND"; return 1; }
$ trap d DEBUG
$ sleep 2
real 0m2.010s
user 0m0.000s
sys 0m0.000s
$ trap - DEBUG # turn it off, this still prints the 'time' output
But the tricky part here is that it will also affect builtins, like trap or shopt themselves, so you'd probably want to add some exceptions for those... Also, stuff like cd somedir would turn into proxychains cd somedir, which probably will not work. This would also affect everything started from within functions etc. Maybe it's better to just have the function use proxychains only for those commands known to need it.