It's probably more like above 8 or less than -8. One byte is used to save velocity (so 256 possible values), and it's saved to a precision of 1/16 pixels per frame. This gives a range of 256/16 = 16, so -8 to +8. Any velocities outside this range will be capped when saving.
I'm not sure there are many situations when saving a larger range would be useful, most particles shouldn't be travelling that fast.
The reason why larger values may appear to be saved temporarily is because in some circumstances "saved" particle data isn't actually converted to the compressed save format (which caps velocity) before it's loaded back into the game. Instead, an uncompressed copy of the particle data is used, which doesn't cap any values. This is because for things like copying and pasting, pasting from the uncompressed copy of the particle data is faster than loading the data from the compressed save format.
Link to save?
Raising the cap to +/-300 would require saving an extra two bytes per particle (plus there aren't many field descriptor bits left, which might be needed if a new element needs other properties to be saved in more detail - another extra byte per particle would be required if we run out of field descriptor bits and need to add more). At the moment I'm not convinced that ridiculously high speeds are useful enough to do that...