Tar: avoid archiving of files larger than certain size
Simpler than you think:
$ tar cf small-archive.tar /big/tree --exclude-from <(find /big/tree -size +3M)
On a semi-related note (relating to your statement that you can't use find) to get a listing of all files (including directories) under a path minus files larger than 3MiB, use:
$ find . -size -3M -o -type d
You could then do:
$ tar cf small-archive.tar --no-recursion --files-from <(find /big/tree -size -3M -o -type d)
But I'd prefer the first one as it's simpler, clearly expresses what you want and will lead to less surprises.