libmagickcore-dev (empty package arch:all m-a:foreing) exposes the functionality contained in libmagickcore-6.q16-dev when your arch:amd64 package depends on libmagickcore-dev and you install it on an i386 system, you end up with libmagickcore-6.q16-dev:i386 thus you cannot use libmagickcore for the purpose of building an amd64 application

so the problem is:

arch:amd4 ---> archall:all/m-a:foreign ---> arch2:i386

A solution could be to create a new arch:all m-a:virtual category package with the following characteristic. This package will behave like a package tupple: 1. an archall:anyar/m-a:same package that contains only the metadata. This package will depend on archall-virtualall:all/m-a:foreign package 2. an archall-virtualall:all/m-a:foreign package that contains the data, but with depends fields empty

So the depends problem is now:

arch:amd4 ---> archall:any/m-a:same ---> arch2:i386
                                    ---> archall-virtualall:all/m-a:foreign 

The idea is to create the archall:any/m-a:same at install time dynamically and refcount the archall-virtualall:all/m-a:foreign at install/deinstall time in order to remove it when every arch deinstall archall package

Identically archall-virtualall:all/m-a:foreign should not be removed without removing first archall:any/m-a:same

I believe it could be done with a little bit of hack on postinst/prerm script of archall:any/m-a:same. These script could be autogenerated