1. Because of the way a Bitcoin transaction works, sending bitcoins typically involves sending more than you want. It's kind of like you want to pay $5, but all you have is a $20 bill. The extra amount is sent to a newly created address in your wallet called a "change" address. That is the second output in the transaction. The wallet can spend coins in that address just like any other address it manages.
2. When you "import" a private key, the new wallet simply copies and stores the imported private key and uses it just like any other private key that it manages. When you "sweep" a private key, the new wallet sends the bitcoins held by the private key to itself using a normal bitcoin transaction. Many wallets (especially ones that use a seed) do not have the capability to store an imported private key, so they "sweep" it instead.
Also, you (like many others) are confusing the terms "wallet" and "address". A "wallet" is a container for private keys (and the associated addresses). An "address" holds bitcoins. There is really no such thing as a "wallet address" because a wallet typically has many addresses. My Mycelium wallet has over 400 private keys/addresses.