Earlier quoted context omitted.
I looked at the latest version of UPX, they began to use LZMA, if this is considered an LZMA decoder: https://github.com/upx/upx/blob/devel/src/stub/src/arch/amd6... Then it takes ~2500 bytes, mine is ~500 (static version). But the decompression speed for larger code should be higher, as I noticed.
I have suggested them to look at my version, but I think UPX not much hardcore for that. Because I'm guessing decompression speed is more important to UPX than the extra 2kb.
I guess it would be a nice option, if I was trying to compress something that was already small, so the extra 2kb was significant.