1. It doesn't matter how small you set it, if you don't publish. As I mentioned in the beginning - at least one file is always there for a stream. You need to publish enough for a new segment file to be created and only when this happens, RabbitMQ will check if the old segment file contains only expired messages and if yes - it will immediately delete that old segment.
2. This is not a reasonable size for a stream segment. You basically can't fit even a single message in there (apart from the message payload, there is additional metadata in the segment files). You have to accept that messages don't just disappear from the stream - it's an immutable data structure and messages won't be removed from a segment file - only the whole file can be deleted.
Best,