Тебе, обезьяны кусок, ясно компил говорит, что время жизни объекта, на который ссылается блядская переменная, и время жизни ссылки — разные, однако такой код компилируется и является UB. Не UB он лишь до тех пора, пока твоя блядский CAPACITY хватает, чтобы поместить твои блядские элементы в вектор. Как только блядского CAPACITY не станет хватать, вектор реаллоцирует память. Старый буфер, на элемент которого ссылается твоя блядская ссылка, уже не действителен, там мертвый объект из кучи