Nobody can give you shipping charges without knowing your address. The credit card step exists because most of the time the billing address and shipping address are the same.
It depends really. Amazon.com, no of cause not, the US is huge for small countries, you do know the shipping cost.
I work for a company that has seven webshops, in six countries. We work out how much it will be to ship an item, on average and just include it in the price of the product. If the customer orders multiple item, we save a bit of money on shipping for that order. So in our case, because one webshop only shipping within one country, we always have a shipping cost of zero (it no zero of cause, it's factored into the product price, but it easier to figure out the actual cost of a purchase ).
It depends on what shipping address you use though. An online vendor could probably be sued for false advertising if they showed one shipping price, but then changed it later because a customer decided to use a new shipping address.
And if I'm sending a gift to an address that isn't already in my account?
Ship cost estimates are far more difficult than just making an assumption about where it will be shipped to. You just flat out can't quote a shipping cost unless you know for sure what the address is, or else the act of quoting shipping can actually be considered fraudulent. They get the delivery address at the same stage as the payment information because it allows for an easy "Shipping address is same as billing address" option.
For anyone that is too skeptical about entering payment information before seeing shipping costs, there is an option to estimate your shipping costs beforehand. It requires more work though, which is why it is an optional step.