Yes, Qt is kind of braindead :-) before QApplication a(argc, argv); not many things work; it tries to load the libqcocoa.dylib when you specify that Fusion setting line, and because you did it before the QApplication constructor, Qt hasn't found and read in qt.conf file (written by macdeployqt, it tells Qt where to find libqcocoa.dylib). That's why moving the Fusion setting after makes Qt much happier.
P.S. Actually you can get around this error in another way than by moving the Fusion setting line: by copying the PlugIns folder (created by macdeployqt in example.app) and place it together with the .exe/ELF file (MacOs/example). Because then Qt can load the Cocoa plugin without having read any qt.conf file.