1) This is most likely because you were using #pragma lib or whatever it is called.
It is not your fault, blame Microsoft. People who use MS products often have that kind of problem because they do things which they have learned as "correct and normal" when in fact it is not correct and normal at all, but MS teaches you so.
If you need to link to a library, you certainly have to tell the linker to do that (usually via the commandline, but MS also has this pragma stuff).
You will not have to do it again every time you update Code::Blocks, as this gets saved with your project (you will have to do it if you re-import, though).
2) You should use .a libraries instead of .lib (use the tool reimp which comes with MinGW to convert the lib if you don't have a .a library). The correct way to add libraries is by either providing the name (without prefix or extension), so the IDE will complete the filename, or (not recommended) by providing a full path/filename. Alternatively, you can add -lyourLibraryName to the command line options, but again this is not recommended (it is complicated and not necessary, the IDE can do the dirty work for you).
3) Yes, the debugger has lately been greatly improved, you should always use a recent build for debugging.
Please note that RC2 and the build from HEAD use different methods to store the configuration. So you will have to set up the system lib directories again when migrating to HEAD (this may be why the lib is not found).
EDIT:
1) and 2) Of course you can just use the MSVC toolkit with Code::Blocks, too. In that case, the #pragma works again.