The JWT spec can thus be fixed by changing the recommended set of primitives. No need to reinvent the wheel with custom serialization (that probably also has vulnerabilities when implemented by clueless people).
You parade the alg=none vulnerability that has been fixed long ago as the reason to reinvent the world. It's simply not.