Well, if you add an object there (say, 'mypy.lib'), PyDev will create a shell, import that module in it (i.e.: import mypy.lib) and do a dir in it (i.e.: dir(mypy.lib)).
If for some reason doing the dir() does work in the command line but not in the code-completion, then this may be an issue in PyDev, but I think the real problem is that some libraries don't really expose what they have on dir(), just when you access some 'known' attribute, in which case currently the only way to make it work would be creating a module with the actual interface (which then accesses things as needed) or providing "Predefined Completions" -- see the "Predefined Completions" topic at: http://pydev.org/manual_101_interpreter.html
EDIT: If the case above didn't help, it's 'usually' a PYTHONPATH misconfiguration problem (i.e.: after adding any module, you should go to the interpreter configuration and add the missing paths -- just adding/removing it usually does the trick, but note that if nothing changed in the actual paths per se, you can go to the interpreter configuration page and just press 'apply' and choose the interpreter to be reindexed) -- please let me know if this is still not your issue (just to note, I've installed clutter here and it's working properly for me).