A few FACTS, not speculation...
First off, it's most definitely in bytes, not kilobytes. (The first thing the code does with it is shift it right 12 bits, to turn the number into number of pages. If you have a debugger hooked up you can see the result in the global MmLockPagesLimit...)
Second, if you set it to something less than 524,288 (512K), the system will just set it to 524,288 before converting it to pages and storing the result. Also, if you set it too large for the available memory, the system will, you guessed it, set it back down to 512K. Since lots of "tweak" sites are saying that the value is expressed in KB, this results in very small numbers in the registry value, resulting in the default value being used internally.
Third, very few setups are going to even use a fraction of the 512K default. Setting it larger will not make anything run faster unless you're already running into the limit. This value sets a quota on how much memory can be temporarily page-locked for the duration of currently-pending DMA IO requests. You need to understand that most of the time you have only one IO request pending per disk device, and most of those requests are 64Kbytes or less in size. (Use PerfMon and see.) Most systems never bump into this limit and if they do, the result is FAILURE of I/O requests, not poor performance.
Fourth, IoPageLockLimit is ignored as of Win2K SP1, SP2, and Windows XP. Fergetaboutit, unless you're running a very old version of the OS. You can prove this by running Mark Russinovich's "strings" on ntoskrnl.exe, and noting that the string "IoPageLockLimit" is gone as of SP1, or by using his "regmon" and noticing that the value is no longer being read.
All indications to the contrary are placebo effect, i.e. "I tweaked this and the result was so and so," but that doesn't prove that the tweak CAUSED so-and-so. Basic post hoc fallacy.