Validar el peso o el tipo ya es parte de la implementación, y como tu comentabas primeramente puede variar en cada proyecto o tipo de requermiento por lo que en ese caso yo extendería la clase y le agregaría un método para checar eso, o hacerlo concretamente en la implementación de la clase.
move_uploaded_file en efecto, regresa true o false dependiendo de si se pudo o no mover el archivo, te recomiendo veas el Manual.
Saludos.