I got both ghc6 and ghc7 on my desktop. To install new packages (for the specific ghc version), I use cabal with the flag --with-compiler=
cabal update has no --with-compiler option because it is completely compiler-agnostic -- it doesn't involve GHC or any other compiler at all. It just downloads a list of available packages from Hackage, nothing more. You can expect that something similar applies to other commands which do not let you choose a compiler (as the dev team was careful to avoid making cabal GHC-specific, let alone specific to a particular GHC version, wherever that makes sense).