When trying to use PyIter_Check macros in applications that embed python interpreter (like vim) it always evaluates to TRUE because _PyObject_NextNotImplemented function has different address seen in vim C functions and python library. As address of this function is assigned always in C library code and checked in vim check is always TRUE. More details are here: https://groups.google.com/forum/?fromgroups=#!searchin/vim_dev/tests/vim_dev/CEaL812aLNI/aSuZ0Jin8BQJ. Problem was tracked down to the presence of “-Bsymbolic-functions” linking flag.
Checked with manually unpacked libpython2.7_2.7.3-5ubuntu4_amd64.deb on Gentoo host. In the referenced topic same problem is reported for “Ubuntu 12.10 with Python 2.7.3” (Bram Moolenaar) and “Ubuntu 13.04” (Yukihiro Nakadaira).