If you are using Windows, you can use the Microsoft Keyboard Layout Creator tool to make your own layout; you will need administrator access to install it, however, and then you will have to switch to it.
Keyboard layout creator at work. http://dl.dropbox.com/u/1164414/SO/Italian%20International.png
As you noticed, however, no layout can cover the entire range of unicode characters.
What I have done is create an AutoHotKey script like this:
::\exists::
SendUnicode("∃")
return
::\forall::
SendUnicode("∀")
return
SendUnicode(char){
;send unicode encoding to clipboard because
;that's the only way AHK can encode Unicode.
Transform, Clipboard, Unicode, %char%
SendInput ^v
return
}
I would share the whole list of bindings I've written, but it really is an inelegant, ugly kludge. However, it might do the trick for you.
If you aren't using Windows, this approach should still be available to you through other software. However, I've already used all of my link allowance. :)