Yeah, the problem is that textures are still in the texture-cache. Unfortuntly we don't have a way yet to "force" texture-reloading. So you have to find out which textures are used and clear those from cache first with IVideoDriver::removeTexture (and be careful you can't just delete the full texture-cache or the default-font is gone... and that one is used in the UI).
In theory OK, but you can optimize it by using findTexture (which searchs only cache) instead of getTexture. Otherwise on first time you load the texture twice. Crash maybe because you still use the old texture somewhere?
Which example do you mean?
edit: OK, seeing your second post, guess you mean that :-)
edit2: Thought that one is using a bit different mechanism as it tries to keep the texture-pointer intact.