Транзишен лучше, именно из-за «когда убираю курсор, все без анимации». Вообще кейфреймы сделаны для более сложных вещей, скажем, когда нужно по вейпоинтам что-то гонять (по сложному маршруту т.е.), и другие нелинейные штуки делать. Если в кейфреймах только 0% и 100%, это оверкилл.
Отделить в коде можно чисто визуально, если это важно.