В Java так делают не потому, что строки иммутабельны, а потому, что есть string pool. У него своя политика и GC его не чистит.
В связи с этим, если, например, приложение упало и вы делаете heap dump, то в нем могут оказаться пароли в чистом виде. Искать там ничего не нужно. У heap dump определенная структура и найти string pool не проблема.
Так же злоумышленник может спровоцировать создание heap dump и позже его забрать. Немного натянутый случай, но вполне реальный.