Как использовать значение width для height на css calc()?
Да, можно, например, с помощью псевдоэлементов. Блок всегда заданных пропорций (высота считается как % от ширины): https://jsfiddle.net/Ankhena/cLhxv7eq/
В примере всегда квадратный блок, для изменения пропорций нужно изменять %%Через переменные не получится, потому что:
либо мы знаем ширину в точках или vw - тогда не нужен calc
либо она у нас в процентах - получим проценты, но проценты эти будут от высоты родителя, а не ширины. (Собственно для умножения процентов тоже не нужен calc)
.wrap{position:relative; overflow:hidden; float:left; width:25%; //height:auto; }
.wrap::after {
  content:'';
  display:block;
  padding-top:150%; - пропорция 1 к 1.5
}
и абсолютом внутрь объекта что нужно, работает от 9 ие и выше