Overload resolution currently depends on the order in which def
calls are made (preferring later overloads). This should be
changed so that the best-matching overload is always selected.
This may await Langbinding integration, since the technology is
already in Luabind.

In the thread at
http://aspn.activestate.com/ASPN/Mail/Message/c++-sig/1860301,
Niall Douglas describes an idea for solving some "false"
dangling pointer/reference return errors by attaching data about
objects which lets the framework determine that the reference
count on an object doesn't tell us anything about the lifetime
of its data.

Currently Boost.Python has several global (or function-static)
objects whose existence keeps reference counts from dropping to
zero until the Boost.Python shared object is unloaded. This can
cause a crash because when the reference counts do go to zero,
there's no interpreter. In order to make it safe to call
PyFinalize() we must register an atexit routine which
destroys these objects and releases all Python reference counts
so that Python can clean them up while there's still an
interpreter. Dirk Gerrits has promised to do this job.