After some research, it looks like leaving out the trailing slash causes your browser to send out another HTTP request for the file "example.com/about#", instead of an internal link like you'd expect.
Now, I tried this kind of request on an IIS web server and an Apache web server, and both sent me back a 301 redirect to the correct URL, so I think they have some built-in functionality to handle this understandable mistake.
However, I would guess that WordPress/WPML uses Apache's mod_rewrite or something similar to make search engine friendly URLs, so that instead of example.com/about.php?user=tnorthcutt, you get example.com/about/tnorthcutt. This will probably bypass the server's normal corrective behavior. So instead of Apache redirecting you to the appropriate URL, it tries to translate it from a search engine friendly version, and everything goes south from there.
So I guess the moral of the story is to just add in the slash, and avoid the extra HTTP request altogether if possible.
Note: This is kind of wild speculation, and I'm making a lot of assumptions about your setup. Grain of salt required.