In principle this is a good idea, but if you do this you need to do more - you need to move the unread data to the front of the buffer.

```c
memmove(stream->rx_data, stream->rx_data + data2transfer, stream->rx_size - data2transfer);
stream->rx_size = data2transfer;
```

See http://stackoverflow.com/questions/4415910/memcpy-vs-memmove for why you need to use memmove.  I don't think there will be a bottleneck here, so you are welcome to do this if you want but I don't think it will make a big performance difference.