I'm opening this as a point of discussion - I have not been able to find any technical reason for this limit aside from performance and the ease of using single Vec4s for weights and indices. Going through the code base here it seems like the limit was set many years ago when skinning was first introduced to three.js, so perhaps it's time to revisit it.
I've run into issues with several models that I am not able to edit which have more than 4 weights per vertex (specifically, all models downloaded from Mixamo). When loading them in three.js the extra weights are deleted, resulting in errors in the animation. Loading the same models in Sketchfab results in the animation playing correctly, so it must be possible to support more than 4 vertex weights in WebGL.
For reference here is the difference in the animation (note the position of the fingers). In Sketchfab (correct)

and the same model loaded in three.js (incorrect)

Here is the model. The error is especially obvious with this example, however most Mixamo models show similar minor errors (head wobbling, splayed fingers, minor jitter etc).
victory_2_30fps.zip
With regards to editing the model to remove the extra vertex weights manually - I'm not sure this would be possible without a lot of work on the animation, but even so I have tried loading the models into 3DS Max and Blender and re-exporting for use in three.js using a few different methods (FBX, Collada, JSON). In all cases the model gets completely corrupted and is unusable so that is not an option.
I'm opening this as a point of discussion - I have not been able to find any technical reason for this limit aside from performance and the ease of using single Vec4s for weights and indices. Going through the code base here it seems like the limit was set many years ago when skinning was first introduced to three.js, so perhaps it's time to revisit it.
I've run into issues with several models that I am not able to edit which have more than 4 weights per vertex (specifically, all models downloaded from Mixamo). When loading them in three.js the extra weights are deleted, resulting in errors in the animation. Loading the same models in Sketchfab results in the animation playing correctly, so it must be possible to support more than 4 vertex weights in WebGL.
For reference here is the difference in the animation (note the position of the fingers). In Sketchfab (correct)

and the same model loaded in three.js (incorrect)

Here is the model. The error is especially obvious with this example, however most Mixamo models show similar minor errors (head wobbling, splayed fingers, minor jitter etc).
victory_2_30fps.zip
With regards to editing the model to remove the extra vertex weights manually - I'm not sure this would be possible without a lot of work on the animation, but even so I have tried loading the models into 3DS Max and Blender and re-exporting for use in three.js using a few different methods (FBX, Collada, JSON). In all cases the model gets completely corrupted and is unusable so that is not an option.