по 1-му пункту charAt быстрее, внутри String свой chars
Эт смотря сколько раз вызывать. Всё-таки это вызов метода, который приводит к дополнительным операциям со стеком. Т.е. если сравнивать один вызов, то да, charAt будет быстрее, но если у вас charAt вызывается в три раза больше, чем вообще длина строки, то это будет медленнее. Но опять же - разница будет не велика на строке в 12 символов.