During our last community meetup I raised the point that the current implementation of nupic.core does cache and use memory areas (via pointers) created in python. This is mostly from memory allocated by numpy arrays.
One example of this pattern is when Cells4::setStatePointers(…) is called. Supsequent calls to Cells4::computer(…) will then fill in values into these arrays.
There is nothing wrong with such practice but it might just make it more difficult for other language bindings providers similar functionality.