Two things come to mind: 1. Convert the *CloseTab methods take an index and not a JSON data literal. This matches Desktop and makes a lot more sense. 2. Remove "old" closed tab data. Desktop removes closed tab data after a given time. Looks like #2 is done in an Idle handler: http://mxr.mozilla.org/mozilla-central/source/browser/components/sessionstore/SessionStore.jsm#1506 #2 would require changing the Fennec closedTab JSON structure a little, but it would reduce the size of the file.
Can't say anything off-hand about #1, but the Desktop implementation for #2 now lives at https://dxr.mozilla.org/mozilla-central/rev/6be5c7d30d2def62a762ac187252eba626b23a92/browser/components/sessionstore/SessionStore.jsm#2192. The default value on Desktop is to cleanup old "Recently closed tabs" after two weeks, so based on that even moderate usage would likely hit our current value of browser.sessionstore.max_tabs_undo first, but it might still be an interesting idea.