why load_from_checkpoint is not defaultly inplace?
Why
new_model = MyModel.load_from_checkpoint(checkpoint_path="example.ckpt")

instead of
MyModel.load_from_checkpoint(checkpoint_path="example.ckpt")

The former one is not friendly to native PyTorch users. And cost me an afternoon to find the bug.
load_from_checkpoint is a class function which instantiates the object with the hyper_parameters in the checkpoint and then loads the state_dict.
If done like in your proposal my_model.load_from_checkpoint(checkpoint_path="example.ckpt") similar to pytorch's load_state_dict you'd have to create the my_model object first with the hyper_parameters parsed from the checkpoint and then load the weights. load_from_checkpoint combines both.
Maybe adding a way to load the state_dict from a checkpoint into an already instantiated object without using a classmethod would make sense. Something like load_state_dict_from_checkpoint.
The alternative is to load the checkpoint and then call model.load_state_dict(checkpoint['state_dict'], strict=strict).