OSX Activity monitor was not reporting correct memory usage. use htop to see correct usage statistics.
First I started the interpreter in interactive mode
python -i
Then in the interpreter I wrote
import sqlite3 as sqlite
db = sqlite.connect(":memory:")
db.execute("create table test(id integer primary key, test_text text)")
for i in range(50000000):
db.execute("insert into test(test_text) values (?)", ("test",))
The first screen shot is the memory usage while interactive python is running. The memory usage is ~488mb.

Small Note, OSX activity monitor identifies the python interpreter as "Terminal" probably because it doesn't check for children's memory usage (doesn't look at forks).

This second screenshot is after exit() is called in the interpreter. The memory usage is still at ~488mb In short, the memory isn't deallocated on interpreter exit.
Update:
Original test was 3.4. Just confirmed with 2.7.
Update2:
Attempted the test again with htop.


Apparently the lesson isn't that python.sqlite3 doesn't deallocate in interactive mode, it's that you shouldn't use OSX activity monitor to test memory usage.
Nothing to see here, move along.