CreateDeviceFromD3D will be pushed as soon as patch 9 is finalised. The main concern right now is the thunking of the Release methods of the device.
This concern comes up from the fact that the CreateDeviceFromSurface methods from all 3 versions behave the same way except for one difference in version 3, which I mention below.
When you create a device from IDirect3DRM3::CreateDeviceFromSurface and release it, native will also destroy the depth surface attached to it (if it created it internally), otherwise it'll let the application keep the reference to the depth surface it created.
Other than the above peculiarity, the behaviour is identical.