Наверное нужно объяснить куда я клоню. То, что линух получает 1448 за раз как раз понятно. Это стандартный для Ethernet MTU(1500) минус TCP и IP заголовки. И как правильно здесь написали - это не ограничение ОС, а вполне нормальное поведение под названием сегментирование TCP, если я правильно помню. И recv нужно звать пока не вычитаем все. Это везде описано. Да вот хотя бы и в примере к модулю socket:
http://docs.python.org/library/socket.html#example, раз уж мы о Питоне говорим.
Вопрос в том почему винда так не делает. Может линух просто быстрее и поэтому recv успевает вычитать первый TCP сегмент быстрее, чем приходит второй. Или все-таки виндовый клиент внутри сети, а линуховый снаружи?