It's final. I've tested it and everything.
The solution to using surfaces AND having restoration is very simple. Before resetting the device, set the pointer to nothing. For example:
Set ptrBackBuffer = Nothing
After resetting the device, merely aquire it again.
Set ptrBackBuffer = Device.GetRenderTarget
I tested it and it works. I did not have to reload or do anything special to my loaded surface.
I believe the same goes for render target pointers and surfaces used for additional swap chains.