Not really complex engineering, simply define 1 Safecoin is equal to X “datastructure objects”. Choosing the X to maintain 4 billion Safecoin if that is desired. Now your Safecoin is divisible, this is how Bitcoin approaches it. The reason this method is not first choice by the designers is because you then have to transfer X structured data objects for every Safecoin, and this may be too burdomsome for the network.
Dyamanaka’s solution is very innovative and may work well. My main concern is usability as it is decent departure from how most currency functions and that may make or break Safecoin for normal non technical people. Also we may possibly be just trading the burdensome transaction problem for a more complex exchange-as-a-division mechanism, but there is a lot more about that over on the Safecoin Divisibility and Rabbits VS Turtles threads.