This is correct, at least for the vB 3.x series. Not sure if they changed it for 4.x because it was something that people were requesting.If I remember correctly (it's been a while since I've used vBulletin), posts and threads have not only the user ID stored, but the username as well (which is one of the main reason username changes on huge forums can be a very CPU-intensive process). It's likely just referencing the stored username when showing the last post which, unfortunately, ignores your modifications to the code that retrieves a username.
And yeah, that's why changing the username borks servers. :X Because it has to go through and change every instance, instead of just the one.