You can make any changes that do not affect the service interface without having any effect on application upgrade.
Such changes include:
Adding a new operation - a Receive Task/event handler - to an existing operation.
Adding or removing any tasks except incoming message activities.
Changing the flow of logic within the process.
Changing the place of incoming message activities within the process - provided no incoming message activities are added or removed, they can be moved around without affecting the interface.
Changing the fields or layout of forms.
Changing scripts.
Making changes to the schema (BOM) that have no bearing on the WSDL.
Changes in the way that an XSD type is expressed that do not change its meaning.
The sequence of root (top-level) element definitions within an XSD.
Changes in annotations.
(In a concrete WSDL) Changing the SOAP version used by a binding.
This is a list of possible changes to the elements:
WSDL: Definitions
Target namespace has to match (but not the prefix).
PortTypes can appear in any order.
You can add a new PortType. For generated WSDLs, a port type is synonymous with the source process.
WSDL: PortType
Operations can appear in any order.
You can add a new Operation for WSDLs generated from processes, Operation is synonymous with incoming-message-activity.
WSDL: Operation
Input/Output for WSDLs generated from processes input/output/fault data is synonymous with the formal parameters associated with incoming message activities and throw error events.
Can appear in any order within the Operation.
Faults, if present, have to match and their corresponding messages have to be identical (can appear in any order).
WSDL: Message
Target namespace has to match (but not the prefix).
Parts have to be identical and in the same order.
XSD: Element
Target namespace has to match (but not the prefix).
XSD: ComplexType
ComplexType name has to match if directly referenced from a message part.
Target namespace needs to match, but not the prefix.
XSD: SimpleType
SimpleType name does not have to match.
Target namespace and prefix does not have to match (provided that the underlying type and restrictions are identical).