Это очень хороший вопрос! Я рискну здесь угадать, так что терпите меня, потому что у меня нет однозначного ответа.
Я думаю, что «независимый от платформы» относится к коду, который выполняется чем-то, что скрывает инфраструктуру. Например, JVM скрывает платформу от языка - в языке нет ничего, что дает вам доступ к платформе - отсюда и независимость от платформы.
Я полагаю, что кроссплатформенность - это то, что не скрыто от деталей платформы - подумайте, например, о JavaScript: у вас есть доступ к браузеру и всем его особенностям. Поэтому написание кода Javascript для запуска во всех браузерах будет кросс-браузерным, и вы можете экстраполировать это, я думаю, на «кроссплатформенность».