turns out that popular "Cloud Compare" software created the "crappy" scaling. It's a great software but I would *strongly* advise to use it for importing your LAS / LAZ files and then exporting them again in LAS / LAZ format as part of your workflow. Cloud Compare will rescale your LAS / LAZ files and drop the information stored as Variable Length Records (VLRs) such as projection information and slightly modify other attributes as well. Below an example with fusa.laz. I include the lasinfo report of the original first and then of the one exported from Cloud Compare. All I did was load it into Cloud Compare (version 2.5.3 [Windows 64 bits]) and then save it again. See for yourself:
D:\lastools\bin>lasdiff -i fusa.laz -i fusa_cc_export.laz
checking 'fusa.laz' against 'fusa_cc_export.laz'
headers are different
different version: 1.1 1.2
different system_identifier: 'LAStools (c) by Martin Isenburg' 'libLAS'
different generating_software: 'lasclassify (110920) unlicensed' 'libLAS 1.7.0'
different file_creation day.year: 40.2010 101.2014
different offset_to_point_data: 321 227
different number_of_variable_length_records: 1 0
different point_data_format: 1 3
different point_data_record_length: 28 34
different number_of_points_by_return: (263413,13879,281,0,0) (0,0,0,0,0)
WARNING: different x_scale_factor: 0.01 0.00000025
WARNING: different y_scale_factor: 0.01 0.00000025
WARNING: different z_scale_factor: 0.01 0.000000022
WARNING: different x_offset: 0 277749.999998779
WARNING: different y_offset: 0 6122250.000003052
WARNING: different z_offset: 0 42.21000061
different max_x: 277999.99 277999.99
different min_x: 277750 277749.999998779
different max_y: 6122499.99 6122499.989993286
different min_y: 6122250 6122250.000003052
different min_z: 42.21 42.21000061
skipping check of variable length records due to different number (1 != 0)
headers have 20 differences.
x: 27799997 999919980 scaled offset x 278000 278000
y: 612234220 368814755 scaled offset y 6.12234e+006 6.12234e+006
scan_angle_rank: 89 0
point 1 of 277573 is different
gps time of point 1 of 277573 is different: 5880.963028 != 5880.962891
x: 27799997 999919980 scaled offset x 278000 278000
y: 612234253 370134808 scaled offset y 6.12234e+006 6.12234e+006
z: 6430 997741644 scaled offset z 64.3 64.3
scan_angle_rank: 89 0
point 2 of 277573 is different
gps time of point 2 of 277573 is different: 5880.963032 != 5880.962891
x: 27799952 998119908 scaled offset x 278000 278000
y: 612233974 358974361 scaled offset y 6.12234e+006 6.12234e+006
z: 6309 943089430 scaled offset z 63.09 63.09
scan_angle_rank: 89 0
point 3 of 277573 is different
gps time of point 3 of 277573 is different: 5880.978038 != 5880.978027
x: 27799955 998239913 scaled offset x 278000 278000
scan_angle_rank: 89 0
point 4 of 277573 is different
gps time of point 4 of 277573 is different: 5880.978043 != 5880.978027
scan_angle_rank: 89 0
point 5 of 277573 is different
gps time of point 5 of 277573 is different: 5880.978047 != 5880.978027
more than 5 points are different ... shutting up.
scaled offset points are different (max diff: 7.44913e-006 7.44779e-006 9.26045e-007).
both have 277573 points. took 0.795 secs.
D:\lastools\bin>lasinfo ..\data\fusa_cc_export.laz
reporting all LAS header entries:
file signature: 'LASF'
file source ID: 0
global_encoding: 0
project ID GUID data 1-4: 00000000-0000-0000-0000-000000000000
version major.minor: 1.2
system identifier: 'libLAS'
generating software: 'libLAS 1.7.0'
file creation day/year: 101/2014
header size: 227
offset to point data: 227
number var. length records: 0
point data format: 3
point data record length: 34
number of point records: 277573
number of points by return: 0 0 0 0 0
scale factor x y z: 0.000000249990005 0.00000024998999 0.000000022139999
offset x y z: 277749.99999877927 6122250.0000030519 42.210000610351557
min x y z: 277749.99999877927 6122250.0000030519 42.210000610351557
max x y z: 277999.98999999953 6122499.9899932863 64.349999999999994
LASzip compression (version 2.2r0 c2 50000): POINT10 2 GPSTIME11 2 RGB12 2