Unfortunately, I do not know how to reproduce this error with minimal code, since if it is indeed the destruction order, it will occur randomly. Here is my call stack when the application closes, maybe it helps:
> sfml-window-d-2.dll!sf::priv::WglContext::~WglContext() Line 110 + 0xf bytes C++
sfml-window-d-2.dll!sf::priv::WglContext::`scalar deleting destructor'() + 0x16 bytes C++
sfml-window-d-2.dll!sf::priv::GlContext::GlobalCleanup() Line 128 + 0x29 bytes C++
sfml-window-d-2.dll!sf::GlResource::~GlResource() Line 79 C++
sfml-graphics-d-2.dll!sf::Texture::~Texture() Line 104 + 0xf bytes C++
sfml-graphics-d-2.dll!sf::RenderTexture::~RenderTexture() Line 48 + 0x12 bytes C++
GF_Multiplayer_Client.exe!LightSystem::~LightSystem() Line 96 + 0x91 bytes C++
GF_Multiplayer_Client.exe!`dynamic atexit destructor for 'lSystem''() + 0x28 bytes C++
msvcr100d.dll!doexit(int code=0, int quick=0, int retcaller=0) Line 567 C
msvcr100d.dll!exit(int code=0) Line 393 + 0xd bytes C
GF_Multiplayer_Client.exe!__tmainCRTStartup() Line 568 C
GF_Multiplayer_Client.exe!mainCRTStartup() Line 371 C
I tried various versions of SFML 2, but I get this error with all of them.