Надо говорить "the city has skyscrapers inside it"?
Не, небоскребы не могут быть "внутри" города, они его часть, так что это избыточная информация. Мы же не говорим "every human has a heart inside his body". Так можно, но зачем - разве сердце может быть вне тела?
Насчет кружки ты неверно понял мой ответ: суть не в том, что неправильно говорить "mug has my photo", а в том, что в конкретном примере нам нужно было
перевести предложение. В исходном предложении было "...НА кружке...", а в переводе оно куда-то потерялось - в этом и ошибка.
Мы вполне могли бы сказать "mug has a photo", но это как раз значило бы то, что не имеет значения, где оно расположено (есть ведь кружки с печатью и внутри).
Поэтому я ненавижу методику с переводами - она учит переводить, а не пользоваться языком. Перевод это отдельная языковая деятельность, которой нужно отдельно обучаться.