I have never heard of a reflection system in Java before.
I planned to add a special type variation of editing mode where you work entirely in curves. (could be bezier but I'm not sure) The edges will be curves and the faces will be curved. I was imagining it with the current quad system only adding a weight control to every edge to modify curves. If the control fell in line with between the two vertices connecting an edge, it would essentially have no curvature. Once your mesh was in a satisfactory state then you could decide the resolution of the curves through subdivision of the quads which would adhere to the defined curves. Of course the design will evolve based on the preferences of artists who use this.
I had not thought about writing a scripting language, but I would if enough people requested it.
How are you planning on handling attribute editors / Outliners?
Have you given a thought to how the undo system will work?
How will the GUI be informed of changes to the model data?
Have you given a thought to how selection will work?
Translate / Rotate / Scale tools?
Have you seen Maya's manipulator system?
Have you though about File IO and versioning will work?
Could you be more specific when you say attribute editors/ outliners
Currently the undo system works as a stack, where everything you do is an action to be undone. Even switching modes is considered an action. I plan on being able to calculate the memory used by the undo stack and allowing the user to specify the maximum amount of memory it uses before discarding steps. There is also a redo stack but it is emptied as soon as an operation is performed. It is mostly to allow the artist to move back a few steps and decide whether to take a different path.
Currently the operations determine when the canvas is redrawn. If a selection changes or a vertex is moved, the corresponding panels are updated.
Selection, translation, rotation and scale are just like Blender if you are familiar. Right clicking selects objects, there is a box selection tool and the hotkeys for scaling, rotation and translation are the same.
I have not looked into other packages other than Blender very much. I would have to research through youtube videos because I cannot afford Maya, 3ds Max or any of the other expensive packages. I would happily attempt to imitate any useful tool though.
Currently there is only support for saving and loading in the application's native format. When you say versioning do you mean of my application? If so, then I will have version stamps on each subsequent version. I don't even have version 1.0 yet though. I would provide updates on a website when the project is far enough to merit one.