The goal is to support each aircraft type as long DJI continues to support it in the SDK, and as long as a significant number of active users are flying with it.
In the case of the Phantom 2 Vision and Vision+, DJI decided to remove SDK support because it was no longer for sale (end-of-life), and because it was utilizing a legacy command set. The newer product lines, starting with the Phantom 3 and Inspire 1, all utilize a new, unified command set which is incompatible with the legacy command set.
This was evidenced in the user interface of Autopilot in version 3.0 and prior, in that the user had to choose an aircraft type before connecting. The new command set does not require this approach, as it supports auto-detection of aircraft type without additional code. This is why the Phantom 3 4K was immediately supported by Autopilot 3.1, even though there was not a specific app update to accomplish this.
Simultaneously supporting both command sets in the SDK was not a viable long-term solution due to the added level of overhead and complexity, and so DJI decided to remove support starting with version 3.0 of the SDK.
DJI has indicated that it intends to use the new command set for all future products, and our evaluation of the new SDK architecture confirms that they are taking this approach. This means that the Vision / Vision+ decision was likely a unique situation and aircraft type support will not follow this pattern in the future.