Yes, there is a size limit. The size limit for posts on Steem is 64kb. If you try to post any content that has a size higher than 64kb, you will see this error:
> RPCError: Assert Exception:fc::raw::pack_size(trx) <= (get_dynamic_global_properties().maximum_block_size - 256):
The limit is hardcoded and is enforced by the blockchain itself. If there wasn't a size limit, than Steem would get DDOS attacked very easily.
The size limit ensures that all network participants get a fair amount of resources to their pocket and prevents malicious actors from abusing the system.
And YES! It seems Steemit.com indeed has a size limit for a post posted on Steem. Looking at the Github Repository: https://github.com/steemit/condenser/blob/ded8ecfcc9caf2d73b6ef12dbd0191bd9dbf990b/app/components/elements/ReplyEditor.jsx
It seems the maximum allowable KB for a post content is 2^1024 or 65536 KB as seen in their code above:
values.body.length > maxKb * 1024 ? 'Exceeds maximum length ('+maxKb+'KB)' : null
And only 255 characters for a Post Title:
values.title.length > 255 ? 'Shorten title'
Since the code is on the Condenser Steemit, I for one think that it is not hard-coded on the Blockchain (feel free to correct me on this one) but only for Steemit.com. It is worth to note though that for most databases, 65536 is also the allowable text field so I won't be surprised if they really did hard-code it too to limit at that size.