Eu iria de Java e Angular, pois você vai encontrar mais material. Não que um dependa do outro, pois são ambiente totalmente diferentes, mas é sempre bom tomar por base algo que se assemelha com que estamos criando. Portanto Java e Angular.

Quantos aos pontos que você levantou, depende sim, mas ambos atendem. Sem mais.