Отличие КОТО от НО:
КОТО - концептуальная идея, НО - что-то конкретное,
КОТО - более формальное, с повышенной вежливостью, более абстрактное, НО - неформальное, разговорное, более эмоциональное,
КОТО - что то важное, заслуживающее отдельного упоминания (как если бы выделить курсивом, то к чему оно относится), НО - что-то обычное.
Соответственно, КОТО - тяготеет к письменной речи, НО - к устной.
В примере с изучением японского языка 日本語を勉強するのが好きです - если не подразумевается какой-то необычный смысл в предложении, то НО - будет правильным вариантом.
Сказать 日本語を勉強することが好きです тоже можно, но при этом смысл будет немного странным. Так как КОТО - это нечто концептуальное, то и смысл получится более концептуальный. То есть не просто "Мне нравится учить японский", а что-то вроде "Мне нравится в целом (концепция), то что я учу японский" (то есть появляется какой-то странный подтекст, где говорится что нравится не столько само изучение языка (ежедневная долбежка), сколько то что с ним косвенно связано. КОТО может в этом случае может подразумевать все что угодно, вплоть до удовлетворения собственного тщеславия от производимого на кого-то впечатления упоминанием того, что учишь японский).
То же самое с примером 靴を買うことが好きです。То есть не просто "нравится покупать обувь", а, концептуально нравится весь процесс приобретения обуви, например,"нравится следить за модными тенденциями, смотреть в журналах, обдумывать все тщательно, советоваться с консультантом в магазине и как венец всего этого - приобрести себе туфли"