If we use foo [amd64] | hello, bar | hello on non-amd64 archs this gets reduced to hello, bar | hello And thus hello gets installed, and thus bar does not get installed. In the llvm-toolchain package case, this leads to wasi-libc not getting installed as expected in experimental builds, as can be seen in various archs: https://buildd.debian.org/status/fetch.php?pkg=llvm-toolchain-snapshot&arch=hurd-i386&ver=1%3A19~%2B%2B20240125092523%2B41fe98a6e7e5-1~exp1&stamp=1706212747&raw=0 https://buildd.debian.org/status/fetch.php?pkg=llvm-toolchain-snapshot&arch=ia64&ver=1%3A19~%2B%2B20240125092523%2B41fe98a6e7e5-1~exp1&stamp=1706212238&raw=0 https://buildd.debian.org/status/fetch.php?pkg=llvm-toolchain-snapshot&arch=loong64&ver=1%3A19~%2B%2B20240125092523%2B41fe98a6e7e5-1~exp1&stamp=1706211390&raw=0 https://buildd.debian.org/status/fetch.php?pkg=llvm-toolchain-snapshot&arch=x32&ver=1%3A19~%2B%2B20240125092523%2B41fe98a6e7e5-1~exp1&stamp=1706211402&raw=0 So we should rather be using: foo [amd64] | hello [amd64], bar | hello i.e. keep the constraints coherent, so that on non-amd64 this gets translated to bar | hello which will not unexpectedly install the hello package, and properly install bar.