Закрывает ли он также какие-либо "базовые" ресурсы?
Да
Или правильный код - создать все буферы и потоки и закрыть один за другим?
Нет, выне нужно этого делать.
Я всегда считал недостатком документов, что это прямо не указано.Однако это подразумевается словами «любые системные ресурсы, связанные с ним».Так как даже с дополнительным слоем посередине ваш BufferedReader по-прежнему связан с файлом, чтобы соответствовать документу, который он должен использовать в своих обернутых потоках.После того, как эти ресурсы были освобождены, сборщик мусора становится только заданием, когда на ваш поток перестают ссылаться.