I would like to ask what would be the best approach to start sequences on a sequencer, keeping in mind that UVM currently have some of the deprecated code which may be or may be not get removed in future.
There is no benefit to having a default_sequence. It is a legacy construct that exists to support legacy code. Not having a default_sequence used to result in an error, but it no longer does, so there is no problem not having one.
Starting sequences from the test or other sequences is preferred as it is easier to determine where sequences are started.