JSONB had issue with compression, because the compression is decided on the fly by checking if first part of the serialized data, and in the original format the first part was incompressible (thus no compression was used). But this was fixed in beta3, and so 9.4.0 works fine.
Regarding size, it's more complicated. For example after loading the 'delicious-1250k' dataset from
Regarding size, it's more complicated. For example after loading the 'delicious-1250k' dataset from
http://randomwalker.info/data/delicious/
I get 1322MB for JSON and 1415MB for JSONB, so yes, in this case it's slightly larger.
FWIW, both JSON and JSONB use TOAST, because that's how PostgreSQL treats works around the 8kB page size (or whatever page size you use).