これは「偶然に機能する」ものではありません。UPX は、実行可能ファイルであろうと DLL であろうと、Win32-PE (および他の多くの形式) を圧縮することを目的としています。
「いいですか?」に関しては。ええ、もちろん、他人のライセンスに違反しない限り、それは「OK」です。これは、Qt に関連するもので発生する可能性はほとんどありませんが、原則として発生する可能性があります。たとえば、 「バイナリ形式での配布、何とか何とか、変更は許可されていません」などのライセンス条項を持ついくつかのDLLを使用している可能性があります。たとえば、MSVC や DirectX の再配布可能ファイル、またはグラフィック カード ベンダーの独自の API などです。いずれにせよ、このことを念頭に置き、違反する前にライセンスを確認することは間違いではありません。
「大丈夫ですか?」という質問の言葉遣い 少し違う:「それは賢いですか?」、答えは次のとおりです。おそらくそうではありません。通常、ディスク上の数メガバイトの余分な量はあまり問題になりません。すべてをインストーラーにパックし、ユーザーがそれをインターネット経由でダウンロードすると、データはとにかく圧縮されるので、その点では同じです。
ただし、UPX または別の実行可能パッカーを使用するか、Windows のファイルシステム圧縮を使用するかに関係なく、圧縮には副作用があります。これにより、追加のアドレス空間の断片化が発生し、非同期転送が無効になり、ワーキング セットの DLL からページを破棄し、アクセス時に PE イメージからそれらを透過的に再ロードするオペレーティング システムの機能が失われます。
この最後の文は、オペレーティング システムがページ ファイルに割り当てを行う必要があり、プロセスのワーキング セットを移動して別の場所を確保するときに、ページ ファイルにページを書き込む必要があることを意味します。他に方法はありません。ユーザーがページファイルを無効にした場合はどうなりますか...