It’s both an issue of convenience for end-users (i.e. how easy it is to accomplish a certain goal, and (ideally) understand the process while doing it), but also a technical question.
What you described unitl now focuses on the tileset JSON. You can juggle around with the JSON object, and and remove properties, and just dump a console.log(JSON.stringify...) to the console to see what’s up. Dealing with a GLB (with binary data) can be much more challenging.
(Not to mention that all this is likely happening in a browser, and a browser is… “Wahh
I don’t know what a ‘file’ is!”…)
However, all this is possible, of course. You can have a look at https://gltf.report/ : You can drag-and-drop a GLB, and then there’s the <> (Scripts) tab at the left, where you can essentially write code, based on glTF-Transform, which is an unbelievably powerful library for tasks like that. The main point is: You wouldn’t have to deal with the raw data on the level of vertices and buffers.
Once more the pointer to glTF-Transform: It offers the possibility to implement support for extensions. And implementations for EXT_mesh_features and EXT_structural_metadata is already part of the 3d-tiles-tools. The 3D Tiles tools are not (yet) offering a real, public API for that. And they are not (yet) deployed in a way that may be integrated into the browser. But there are some examples at 3d-tiles-tools/demos/gltf-extensions at main · CesiumGS/3d-tiles-tools · GitHub showing how certain metadata-related operations can be implemented with that.
The broader topic about metadata came up occasionally. There’s certainly a lot that can and should be done for better support here. I once opened Tools and processes for assigning and editing IDs and metadata · Issue #801 · CesiumGS/3d-tiles · GitHub (with some links to forum threads) where people asked about that. (In fact, one thread was opened pretty recently).