Note: The following is from 5+ years experience developing 1GPs and 2+ years with 2GPs as an ISV... it can, however, be viewed as opinionated.
According to the documentation on metadata deletion for 2GP it is still not possible to delete a global class or method.
Basically, once a global class or method is included in a 1GP or 2GP managed package you cannot (at this point) delete it. Since a signature change for a method is effectively the same as deleting the original method and adding a new one, you can't change the signature of a global method either.
You must only define things as global when essential, e.g.:
- Because the Salesforce feature requires it (e.g. custom REST API methods).
- Because you need the class and method(s) to be callable (or implementable) by code outside the package.
Be very careful about any inclusions of globals - the fewer you have the better.
For example, instead of creating custom REST APIs consider whether you can instead have a "command object" in your managed package where you attach automation against CRUD operations, so use of standard REST APIs is then enough. It is, after all, possible to add and remove custom objects and fields in 1GP and 2GP.
Another example is to adopt use of virtual global classes and methods to avoid problems with extending APIs - global interfaces become frozen once included in a package version so are very inflexible down the road.
Also consider using "parameter objects" in global methods in case you need to be able to add new parameters to methods later; you can always add new global attributes or properties to a global class (you just can't delete them). For these "parameter classes", consider using either a Builder pattern for construction (keep the constructors non-global and provide a global Builder for the class with relevant global setter and build methods) when you have required properties, or adopt a fluent interface for optional initialization of properties (with just a default constructor and chainable global setter methods).
BTW: always use apexdoc to document your APIs and use something like SfApexDoc to generate HTML documentation for your global APIs for sharing with your customers.