Пусть имеем Евклидово пространство.
Всегда понимал скалярное произведение как операцию в некотором базисе в ходе которой один вектор проектируется на другой.

но тут начитался тензорного исчисления и запутался на 100%
Там это дело формулируется так:

это формула ни о чём конечно не говорит. С верхним индексом это обычный вектор в выбранной системе координат- контравариантный. А с нижний - из дуального пространства (сопряженного) -ковариантный.
Я знаю что при замене базиса, контравариантный ведет себя как и полагается - меняется "по обычному". Ковариантный сходит с ума.
Можно начинать по-другому

некая квадратичная форма (всевозможные комбинации произведения компонент x и y - 9 штук, перед каждым таким произведением стоят константы, которые оказываются в дальнейшим компонентами метрического тензора)

Может так будет не строго математически, но чуть понятнее.
Обратите внимание, что есть объект "вектор", а есть его "компоненты". Это несколько разные вещи.
У нас есть объекты-векторы и правила их сложения, умножения на число и скалярного произведения.
Набор чисел - компоненты "живут", имеют смысл только при наличии какого-то фиксированного базиса

. Смысл

в разложении по базису

.
Зная исходные операции несложно вывести соотв. им операции для компонентов вектора,
представления вектора в
заданном базисе. Сложение, умножение на число, и
если базис ортонормирован - скалярного произведения.
В криволинейных координатах векторы базиса "не перпендикулярны"

, а значит в общем случае нельзя записать скалярное произведение векторов через сумму произведений компонент

(как и прямо найти эти компоненты скалярным произведением

).
Но можно ввести другой базис

, такой что отдельный вектор

будет перпендикулярен остальным

, a при одинаковых индексах скалярное произведение равно 1:

. И разложив

по этому базису

теперь уже
можно записать

.
Или, записав компоненты более простыми значками,

.
Как видно,
один и тот же объект-вектор можно представить как в виде суммы компонент на вектора базиса по "верхнему" базису, так и по в виде суммы по "нижнему".