그래서 공용 언어 런타임을 기준으로 보면, 닷넷 프레임워크는 1.0, 1.1, 2.0, 4.0이 존재합니다. 2.0 ~ 3.5 사이는 CLR 런타임 기준으로 2.0의 런타임을 쓴다고 말하고, 4.0 ~ 4.8 사이는 CLR 런타임 기준으로 4.0의 런타임을 쓴다고 말합니다.
그래서 공용 언어 런타임이 일치하는 한 기본적으로 실행에는 문제가 없으나, 말씀하신대로 4.8 프로필에서만 쓸 수 있는 어셈블리가 빠지거나 차이가 나는 상태로 배포된 애플리케이션이 4.5 환경에서는 특정 부분에서 Assembly 관련 Exception이 발생하거나 특정 메서드를 찾을 수 없다는 Exception이 나면서 종료될 수 있습니다.
그리고 현재의 닷넷 코어는 윈도우 기반으로 만들어져있던 닷넷 프레임워크를 탈피하기 위한 니즈 + OWIN이라는 이름의 정말 가벼운 웹 API를 위한 실험의 성공 + 파편화된 여러 런타임들의 일관성 보장을 한 번에 달성하기 위해 출발한 프로젝트이고, 사실 처음에는 .NET Framework 5.0이라는 이름으로 기획되었습니다.
그런데 멀리 돌고 돌아서 .NET Core라는 이름으로 다시 시작해서, 정말로 닷넷 프레임워크와 통합을 이룰만큼 성숙해졌다고 판단하여 지난 해 닷넷 5로 리브랜딩할 수 있었죠. ㅎㅎ