Every blob contains a buffer of <page size> bytes allocated out of the engine heap, even if its size is actually smaller. For example, this query:
select cast('a' as blob sub_type text) from <really big table>
can easily cause a system swap or even a FB server crash due to out-of-memory condition.
This was discussed in fb-devel. I think we should find a way to reduce memory consumption for small temporary blobs, or maybe always store the level-0 blob data in the temporary space instead of the heap.
I'm scheduling this RFE for v2.5.