I resolved the problem.
It appears that for the June 2010 SDK (d3dx9_43.dll) and the one before that, Feb 2010 (d3dx9_42.dll), just supplying these dll's in the redistribute files to the end user is not enough to ensure that Effect class can be used.
Initially I believed supplying only the Jun2010_d3dx9_43_x86.cab redistribute file to the end user was enough. But for the mentioned SDKs it's not enough (special cases).
You need to supply all the Jun2010_*.cab files. (The one important to fix bug in this topic is Jun2010_D3DCompiler_43_x86.cab file)
So what I do now is just supply all the Jun2010_*.cab files as found in the \Microsoft DirectX SDK (June 2010)\Redist\ to the end-user. And the DSETUP.dll, dsetup32.dll, DXSETUP.exe, dxupdate.cab also found in that folder.
Then, force the client to execute DXSETUP.exe (to install the redist files) if LoadLibrary("d3dx9_43.dll") fails (test that in a launcher or something before running the actual game .exe).
So it was just a matter of not supplying all the right redistribute files to the end user because of a misunderstanding.
Problem is that it's not properly documented in MSDN and that there's no proper error message inside the function to tell you some files on the system are missing.