I have a model with a custom data type (for LocalDate) and I've implemented corresponding createFromString and convertToString methods in the generated EFactory. To my surprise, I got an Exception saying the java.time.LocalDate type isn't supported (without some extra the Jackson module). Looking at the code, it seems the model's factory isn't used at all. I agree that certain types that are native to JSON (boolean and numbers) can be handled specially, but in general emfjson should use the EFactory like the XML/XMI serialization works.
It should be possible to add an option for supporting both, but IMO the default should be to use the EFactory.