No. Like I said, TCP is not a "packet" protocol (unlike UDP), it's a "stream" protocol. Which means that it doesn't matter how many times you call send(), it's the protocol implementation that chooses how the data will be split on the other end. Some "packets" may be merged, some may be split, you can't expect anything.
So... the purpose of sending the size is to know where your packet ends, and when the next one starts. After receiving data, you must recompose the packets according to their size.